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上验证的.

有任何想法吗?

最佳答案 这是因为Firefox中的图像预取(或者更确切地说是图像缓存)不能很好地处理非2xx返回码.

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

点赞