当我在调用外部脚本后直接包含图像时,我注意到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上也验证了这一点。
有什么想法吗?
答案 0 :(得分:2)
这是因为Firefox中的图像预取(或者更确切地说是图像缓存)与非2xx返回代码的处理效果不佳。
特别是,对于302,问题是https://bugzilla.mozilla.org/show_bug.cgi?id=552605,对于404,问题是https://bugzilla.mozilla.org/show_bug.cgi?id=648568