OK, did it the hardway: after a lot of tcpdump -i -s 500, grepping and
stringing, I tackled it. Halfway.
IMHO, it boils down to both a IE bug and a somehow 'hidden' feature of
Apache. It seems that on script execution an extra header "Vary: Host" is
sent to the browser.
This is what the RFC's say:
"A Vary field value consisting of a list of field-names signals that the
representation selected for the response is based on a selection algorithm
which considers ONLY the listed request-header field values in selecting the
most appropriate representation."
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44
So a "Vary: Host" would tell the browser that it can assume the content to
bee static as long as the 'Host' header in a HTTP request doesn't change.
Appearantly, this header is misinterpreted by IE, causing it to get
everything fresh from the server causing the onmouseover delays. I suspect
Microsoft of being just too lazy to even evaluate the right hand side of the
Vary header.
Apache docs mention about "CacheNegotiatedDocs", but that doesn't seem to
get rid of the Vary header. I did a quick and dirty fix for the moment by
compiling Apache with --enable-module=headers and a "Headers unset Vary" in
httpd.conf, but there should be a better way. Suggestions are welcome.
Ime