This doesn't work in HTTP 1.0, but can we detect HTTP 1.0 and use the  
clean solution only for more modern servers?

On Sep 13, 2006, at 4:18 AM, P T Withington wrote:

> 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


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

Reply via email to