4

当 swf 嵌入到页面中并且没有在浏览器中本地缓存时,浏览器会触发两个对 swf 的请求。这是一个简单的例子

第一个请求返回一个 expected 200 OK,第二个请求304 Not Modified在第一个请求完成后触发 a ,表明文件现在在本地缓存。

为什么第二次请求被触发,我该如何防止它?

4

3 回答 3

2

我想我想通了。我更仔细地阅读了 Firefox 的错误报告,这看起来是由我安装的 AdBlock Plus 引起的。首先,我验证了您更新的页面仍然存在该错误,并再次复制了它。然后,我禁用了 AdBlock Plus 并尝试了相同的测试。双重请求不再发生。因此,如果您安装了该扩展程序,或者可能是类似的扩展程序,那可能就是原因。

是关于插件被双重实例化的错误报告,是关于 AdBlock Plus 导致它的事实的错误报告。

于 2009-07-10T16:14:07.413 回答
1

我刚刚证实这也发生在我身上。

起初,我认为这是由于 Firefox 的一个错误。请参阅此页面上的常见问题解答问题 #16 。然而,他们引用的错误似乎已修复。

因此,我查看了我自己的一些使用 SWFObject 2.2 嵌入 SWF 的网站。双 GET 没有发生。我认为不同之处在于,在我的代码中,我在<head>页面而不是正文中调用 swfobject.embedSWF。SWFObject 2.2 文档建议将脚本放在头部(这与旧版本的 SWFObject 有点不同)。

所以如果我是你,这就是我会尝试的:

  1. 删除 google.load("swfobject", "2.2") 并直接包含 SWFObject 脚本。
  2. 将您的 swfobject.embedSWF 代码移动到页面的头部。
于 2009-07-10T05:57:10.813 回答
1

我相信这也可以通过运行 Firebug 来触发 - 在禁用 Firebug 时尝试使用 LiveHTTPHeaders(或其他一些 http 嗅探应用程序,如 Charles)检查浏览器请求。

于 2009-07-16T22:57:02.050 回答