I've committed the changes that I mentioned, here:
http://dev.jquery.com/changeset/6432

The test suite is now passing in all browsers (save Opera 10b1, which has
issues with :enabled/:disabled).

--John


On Tue, Jul 14, 2009 at 5:00 PM, John Resig <jere...@gmail.com> wrote:

> So I refused to believe that such a massive bug actually existed. I did
> some digging and built a test case:
> http://ejohn.org/files/bugs/modified/
> http://ejohn.org/files/bugs/modified/headers.phps
>
> Sure enough, there's a complete failure.
>
> Opera <= 9.6 are incapable of doing .setRequestHeader("If-Modified-Since",
> ...) or .setRequestHeader("If-None-Match", ...) (nothing is sent to the
> server).
>
> All versions of Opera (including 10b1) return a status of 0 instead of 304
> (for when the content hasn't been modified).
>
> Thus, the test suite is failing in Opera 9.6 because the headers are never
> even sent (and, thus, act like a normal web page) - in Opera 10 it hangs
> because the tests are waiting for a success callback and are never receiving
> one.
>
> This deserves a blog post, what a complete fail.
>
> So, as far as fixing this goes, I'm really not sure. There doesn't appear
> to be any reasonable way to force Opera to send the headers. And even if we
> could it's not clear if it's possible to write a feature detect to determine
> if this will work properly (short of performing a full extra request to the
> server, which is unacceptable). I'm glad things are starting to get better
> in Opera 10, at least.
>
> I think we can change the xhr.status == 304 line to xhr.status == 304 ||
> xhr.status == 0 to catch this painful case in the interim - although this
> will still cause the tests to fail in Opera 9.6. Ugh. I'll dig in to it a
> bit more, what a mess.
>
> --John
>
>
>
> On Mon, Jul 13, 2009 at 7:42 PM, lawrence.pit <lawrence....@gmail.com>wrote:
>
>>
>> Hi John
>>
>> > So it appears as if your patch doesn't work in Opera (the tests you
>> > committed fail in Opera 9.6 and hang in Opera 10).
>>
>> Upon first inspection it appears Opera is not sending the If-Modified-
>> Since header to the server even though it's definitely set on the xhr
>> object (I've tested this with Opera 9.5).
>>
>> The link below suggests that setting the If-Modified-Since and If-None-
>> Match headers didn't work with previous version of opera either, it's
>> not a jquery specific issue.
>>
>>
>> http://my.opera.com/qdb/blog/2008/09/28/an-jquery-bug-problem-feature-with-opera-9-27-ubuntu-with-etag-caching
>>
>> I don't think anything can be done about it except patching Opera.
>>
>> Using Opera 10 it hangs when you set the If-Modified-Since header on
>> the xhr object. I have no insight in whether Opera is working on
>> improving their xhr support for this version or not; clearly the Opera
>> community needs to step up if they want proper if-modified-since and
>> etag support.
>>
>>
>> Lawrence
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to