什么会导致Firefox在执行外部脚本后多次请求资源?

时间:2011-04-29 20:36:31

标签: javascript firefox

当我在调用外部脚本后直接包含图像时,我注意到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上也验证了这一点。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是因为Firefox中的图像预取(或者更确切地说是图像缓存)与非2xx返回代码的处理效果不佳。

特别是,对于302,问题是https://bugzilla.mozilla.org/show_bug.cgi?id=552605,对于404,问题是https://bugzilla.mozilla.org/show_bug.cgi?id=648568