【问题标题】:Why does Firefox fire two requests for embedded swfs?为什么 Firefox 会触发两个对嵌入式 swf 的请求?
【发布时间】:2010-11-09 14:46:44
【问题描述】:

当 swf 嵌入到页面中并且没有在浏览器中本地缓存时,浏览器会触发两个对 swf 的请求。 Here is a simple example.

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

为什么这 2nd 请求被触发,我该如何阻止它?

【问题讨论】:

    标签: flash http firefox embed swfobject


    【解决方案1】:

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

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

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

    如果我是你,我会尝试以下方法:

    1. 删除 google.load("swfobject", "2.2") 并直接包含 SWFObject 脚本。
    2. 将 swfobject.embedSWF 代码移动到页面的头部。

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我认为如果你只看到一个请求,你可能只是有一个缓存的 swf。您是否验证了您看到的一个请求是 200 OK?我看到双重请求并且没有安装 AdBlock Plus(或任何奇怪的插件)dweebd.com/examples/double-swf-request/no-weird-plugins.png
    • 您使用的是哪个版本的 Firefox?
    【解决方案3】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多