couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jan Lehnardt <...@apache.org>
Subject Re: Call for objections releasing 0.10
Date Tue, 15 Sep 2009 22:41:38 GMT

On 16 Sep 2009, at 00:30, Christopher Lenz wrote:

> On 15.09.2009, at 16:02, Curt Arnold wrote:
>> On Sep 15, 2009, at 5:00 AM, Noah Slater wrote:
>>> I plan on cutting the 0.10 release for a vote today.
>>>
>>> I would like to collect any objections now before I go through the  
>>> motions.
>>
>> I'd really like to see http://issues.apache.org/jira/browse/COUCHDB-257 
>>  and http://issues.apache.org/jira/browse/COUCHDB-345 integrated.   
>> Neither are regressions, but they both address significant issues  
>> and are pretty trivial amounts of code.
>>
>> Without the fix for COUCHDB-257, any attempt to access CouchDB from  
>> IE 6 (not sure about 7) will result in stale documents being used  
>> in the app since the lack of an Expires tag results in the browser  
>> always considering the previously retrieve version fresh.  There is  
>> not a new test case for it since the many test cases in the suite  
>> fail on IE already, likely many because of this issue.  However,  
>> there is a test that you can drop into Futon to test this issue in  
>> isolation.  Though I would not recommend IE 6 to anyone, it is  
>> still the browser of choice in some organizations.
> [snip]
>
> This is a somewhat misleading description; it's not the lack of an  
> Expires header on CouchDB responses that results in incorrect  
> caching, it's a (really ugly) bug in the XMLHttpRequest  
> implementation of IE6 that does this. As far as I know, the cache  
> control headers sent by CouchDB are absolutely correct according to  
> the HTTP specification. Unconditionally adding an Expires header  
> (with a date in the past) just to workaround the XHR bug in IE6  
> *completely disables* any caching by any user agent!
>
> Note also that IE6 gets cache invalidation right when you don't go  
> through XMLHttpRequest (that is, request CouchDB documents/views  
> directly).
>
> A CouchDB-based application that runs on the client (CouchApp- 
> style), and that needs to work on IE6, has the option to force all  
> XHR requests to invalidate the cache (for example by using jQuery's  
> "cache=false" option to AJAX requests, which simply adds an extra  
> timestamp-valued query string parameter). In addition, it can choose  
> to do so if, and only if, it detects to be running on IE6. And of  
> course, applications accessing CouchDB only through server-side code  
> do not need to care about this issue at all.
>
> Presumably we *could* add the browser detection and the conditional  
> addition of an Expires header to the CouchDB HTTP server, but  
> browser detection is a really slippery slope that I think we should  
> avoid, and IE6 is likely (or so I hope) to be pretty much extinct by  
> the time CouchDB reaches the 1.0 mark. In any case, I'm -1 on any  
> patch that does this unconditionally, and -0.5 on any patch that  
> does the Expires header dance conditionally. I'd be okay with adding  
> the cache busting trick to Futon (but again, only conditionally),  
> and documenting the issue and workaround for CouchApps.

Thanks for the apt analysis (again).

  -1, too.

Cheers
Jan
--


Mime
View raw message