当我在调用外部脚本后直接包含图像时,我注意到Firefox中的一些异常行为.
例如:
<html>
<body>
<script type="text/javascript" src='external.js'></script>
<img src="/test.gif" BORDER=0 WIDTH=1 HEIGHT=1 >
</body>
</html>
“external.js”可以是任何东西……甚至完全空白.
我注意到当test.gif请求导致404或302时,Firefox会在脚本完成后立即再次请求同一资源.
127.0.0.1 - - [29/Apr/2011:16:22:22 -0400] "GET /test.gif HTTP/1.1" 404 507
127.0.0.1 - - [29/Apr/2011:16:22:22 -0400] "GET /test.gif HTTP/1.1" 404 507
内联javascript不会发生此行为,并且我关闭了流水线操作,因此我非常确定它与此无关.看起来像奇怪的行为,或者我只是错过了一些不那么明显的东西.
我在Ubuntu上使用的是Firefox 3.16,但这也是在OSX上的Firefox 4.0和Windows上的Firefox 3.16上验证的.
有任何想法吗?
最佳答案 这是因为Firefox中的图像预取(或者更确切地说是图像缓存)不能很好地处理非2xx返回码.
特别是,302问题是https://bugzilla.mozilla.org/show_bug.cgi?id=552605,404问题是https://bugzilla.mozilla.org/show_bug.cgi?id=648568