So the [cache request directive](http://www.w3.org/Protocols/rfc2616/ 
rfc2616-sec14.html#sec14.9.1) is not sufficient?  Do we use that?  I  
agree with Max, we _really_ need to document kludges like this...

On 2006-09-13, at 01:34 EDT, Max Carlson wrote:

> Adding this extra mystery query arg has always freaked me out.   
> Backends
> that don't know to ignore it will get confused...  At the very  
> least, we
> need to document this behavior so developer don't get confused also!
>
> -Max
>
> [EMAIL PROTECTED] wrote:
>> Author: hqm
>> Date: 2006-09-12 20:07:10 -0700 (Tue, 12 Sep 2006)
>> New Revision: 1825
>>
>> Added:
>>    openlaszlo/branches/legals/test/lfc/data/httpsequence.jsp
>>    openlaszlo/branches/legals/test/lfc/data/ 
>> testclientcachebreaker.lzx
>> Modified:
>>    openlaszlo/branches/legals/WEB-INF/lps/lfc/data/ 
>> LzHTTPDatasource.lzs
>>    openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/ 
>> LzHTTPLoader.js
>>    openlaszlo/branches/legals/test/lfc/data/alldata.lzx
>>    openlaszlo/branches/legals/test/lfc/data/testsetheaders.lzx
>> Log:
>> Change change.LscKi6240.txt by [EMAIL PROTECTED] /home/hqm/src/ 
>> svn/openlaszlo/branches/legals/WEB-INF/lps/lfc/ on 2006-09-12  
>> 23:02:57 EDT
>>
>> Summary: add cache breaking query arg to SOLO requests
>>
>> New Features:
>>
>> Bugs Fixed: LPPP-2677
>>
>> Technical Reviewer: (pending)
>> QA Reviewer: (pending)
>> Doc Reviewer: (pending)
>>
>> Documentation:
>>
>> Release Notes:
>>
>> Details:
>>
>> The cache breaking query arg was only being added to proxied requests
>>
>>
>> Tests:
>>
>> test/lfc/data/alldata.lzx
>>
>>
>>
>>
>> Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/data/ 
>> LzHTTPDatasource.lzs
>> ===================================================================
>> --- openlaszlo/branches/legals/WEB-INF/lps/lfc/data/ 
>> LzHTTPDatasource.lzs 2006-09-12 22:42:41 UTC (rev 1824)
>> +++ openlaszlo/branches/legals/WEB-INF/lps/lfc/data/ 
>> LzHTTPDatasource.lzs 2006-09-13 03:07:10 UTC (rev 1825)
>> @@ -101,7 +101,17 @@
>>
>>      if (proxied) {
>>          url = tloader.makeProxiedURL(url, this.reqtype);
>> -    }
>> +    }  else {
>> +        // break the browser cache by creating an arg with a  
>> unique value
>> +        if (!forset.clientcacheable) {
>> +            var cachebreak = "__lzbc__="+(new Date()).getTime();
>> +            if (url.indexOf('?') >= 0) {
>> +                url = url + "&" + cachebreak;
>> +            } else {
>> +                url = url + "?" + cachebreak;
>> +            }
>> +        }
>> +    }
>>
>>      // [todo hqm 09-2006] For proxied requests, should the HTTP  
>> method
>>      // (GET/POST) of the client->server HTTP method match the
>> @@ -140,6 +150,11 @@
>>      forset.rawtext = d.rawtext;
>>      var proxied = this.isProxied(forset);
>>
>> +    if (d == null) {
>> +        forset.gotError("client could not parse XML from server");
>> +        return;
>> +    }
>> +
>>      if (d.childNodes[0].nodeName == "error") {
>>          forset.gotError(d.childNodes[0].attributes['msg']);
>>          return;
>>
>> Modified: openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/ 
>> LzHTTPLoader.js
>> ===================================================================
>> --- openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/ 
>> LzHTTPLoader.js      2006-09-12 22:42:41 UTC (rev 1824)
>> +++ openlaszlo/branches/legals/WEB-INF/lps/lfc/kernel/dhtml/ 
>> LzHTTPLoader.js      2006-09-13 03:07:10 UTC (rev 1825)
>> @@ -230,24 +230,29 @@
>>                  // only if "OK"
>>                  if (__pthis__.req.status == 200 ||  
>> __pthis__.req.status == 304) {
>>                      var elt = null;
>> -                    var nodes =  
>> __pthis__.req.responseXML.childNodes;
>> -                    //Debug.write('onreadystatechange  
>> resposnexml=',  __pthis__.req.responseXML);
>> -                    //Debug.info('LzDataset.childNodes',  
>> __pthis__.req.responseXML.nodeName, __pthis__.type);
>> -                    // find first content (type == 1) child node
>> -                    for (var i = 0; i < nodes.length; i++) {
>> -                        var child = nodes.item(i);
>> -                        if (child.nodeType == 1) {
>> -                            elt = child;
>> -                            break;
>> +                    var xml = __pthis__.req.responseXML;
>> +                    var lzxdata = null;
>> +                    if (xml != null) {
>> +                        var nodes =  
>> __pthis__.req.responseXML.childNodes;
>> +                        // find first content (type == 1) child node
>> +                        for (var i = 0; i < nodes.length; i++) {
>> +                            var child = nodes.item(i);
>> +                            if (child.nodeType == 1) {
>> +                                elt = child;
>> +                                break;
>> +                            }
>>                          }
>> -                    }
>> -                    __pthis__.removeTimeout(__pthis__);
>> -                    var d = LzXMLTranslator.copyXML(elt,
>> +                        lzxdata = LzXMLTranslator.copyXML(elt,
>>                                                       
>> __pthis__.options.trimwhitespace,
>>                                                       
>> __pthis__.options.nsprefix);
>> +                    }
>> +
>>                      __pthis__.responseText =  
>> __pthis__.req.responseText;
>> -                    //Debug.write('onreadystatechange  
>> responseText=',__pthis__.req.responseText);
>> +                    __pthis__.removeTimeout(__pthis__);
>>
>> +                    Debug.write('onreadystatechange  
>> responseXML=',xml);
>> +                    Debug.write('onreadystatechange  
>> responseText=',__pthis__.req.responseText);
>> +
>>                      /**** DEBUGGING
>>                      var xmlSerializer = new XMLSerializer();
>>                      var markup = xmlSerializer.serializeToString 
>> (elt);
>> @@ -255,7 +260,7 @@
>>                       *** /DEBUGGING
>>                       */
>>
>> -                    __pthis__.loadSuccess(__pthis__, d);
>> +                    __pthis__.loadSuccess(__pthis__, lzxdata);
>>                  } else {
>>                      __pthis__.loadError(__pthis__, null);
>>                  }
>>
>> Modified: openlaszlo/branches/legals/test/lfc/data/alldata.lzx
>> ===================================================================
>> --- openlaszlo/branches/legals/test/lfc/data/alldata.lzx      
>> 2006-09-12 22:42:41 UTC (rev 1824)
>> +++ openlaszlo/branches/legals/test/lfc/data/alldata.lzx      
>> 2006-09-13 03:07:10 UTC (rev 1825)
>> @@ -18,6 +18,7 @@
>>      <include href="testrawpost.lzx"/>
>>      <include href="testrawpost-solo.lzx"/>
>>      <include href="testheaderresponse.lzx"/>
>> +    <include href="testclientcachebreaker.lzx"/>
>>
>>      <TestSuite>
>>          <TestDatanode/>
>> @@ -35,6 +36,7 @@
>>          <TestRawPost/>
>>          <TestRawPostSOLO/>
>>          <TestResponseHeaders/>
>> +        <TestClientCacheBreaker/>
>>      </TestSuite>
>>  </canvas>
>>  <!-- * X_LZ_COPYRIGHT_BEGIN  
>> ***************************************************
>>
>> Added: openlaszlo/branches/legals/test/lfc/data/httpsequence.jsp
>>
>>
>> Property changes on: openlaszlo/branches/legals/test/lfc/data/ 
>> httpsequence.jsp
>> ___________________________________________________________________
>> Name: svn:mime-type
>>    + text/plain
>> Name: svn:eol-style
>>    + native
>>
>> Added: openlaszlo/branches/legals/test/lfc/data/ 
>> testclientcachebreaker.lzx
>>
>>
>> Property changes on: openlaszlo/branches/legals/test/lfc/data/ 
>> testclientcachebreaker.lzx
>> ___________________________________________________________________
>> Name: svn:mime-type
>>    + text/plain
>> Name: svn:eol-style
>>    + native
>>
>> Modified: openlaszlo/branches/legals/test/lfc/data/testsetheaders.lzx
>> ===================================================================
>> --- openlaszlo/branches/legals/test/lfc/data/testsetheaders.lzx       
>> 2006-09-12 22:42:41 UTC (rev 1824)
>> +++ openlaszlo/branches/legals/test/lfc/data/testsetheaders.lzx       
>> 2006-09-13 03:07:10 UTC (rev 1825)
>> @@ -9,9 +9,13 @@
>>      <attribute name="waitcnt" value="0"/>
>>
>>      <datapointer xpath="edata:/echo" name="dp"
>> -                 oninit="parent.sendit()"
>> -                 ondata="parent.dpready = true"/>
>> +                 oninit="parent.sendit()" />
>>
>> +    <handler reference="edata" name="ondata">
>> +       Debug.write('testcase got edata ondata');
>> +       this.dpready = true;
>> +    </handler>
>> +
>>      <method name="sendit">
>>        edata.setHeader("content-type", "application/xml");
>>        edata.setQueryType("POST");
>>
>>
>> _______________________________________________
>> Laszlo-checkins mailing list
>> [EMAIL PROTECTED]
>> http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins
>
> _______________________________________________
> Laszlo-dev mailing list
> [email protected]
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev


_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to