【问题标题】:Read the source of a script tag from the cache in Firefox从 Firefox 的缓存中读取脚本标签的来源
【发布时间】:2011-05-26 21:42:39
【问题描述】:

我正在向我的应用程序添加一些错误报告。我希望能够从一个类报告方法名称,即使该函数可能是匿名的。

到目前为止,我的解决方案涉及通过使用 XmlHttpRequest 加载脚本标签来读取它的源代码。我的问题是 Firefox 不会从缓存中加载并且总是调用服务器(chrome 使用缓存,我还没有在 IE 中启动)。由于我的项目有数千行代码,因此向服务器发出第二个请求会花费不必要的时间。

有人知道让 Firefox 检查缓存的方法吗?除此之外,有没有办法直接从脚本标签读取脚本源?有没有其他方法可以获取我没想到的源码?

【问题讨论】:

  • 您是否考虑过提交针对 Firefox 的错误? bugzilla.mozilla.org (如果它询问您要将错误提交到哪里,请使用产品:“核心”,组件:“网络:缓存”。)<script> 与 XHR 的安全规则不同......但这确实是Firefox 没有理由跳过缓存。
  • 我没有考虑过。可能是一个错误。
  • @Jason 您应该将此添加为答案,以便我给您打勾。虽然我怀疑我能否指出任何适用的规范(因此可以很好地证明这是一个错误),但我同意这是 Firefox 的一个问题。
  • 嘿!完毕。如果您提交错误报告,请在此处发布指向它的链接,以便以后的读者可以了解发生了什么。
  • @hemlock,FF 缓存 ajax 请求就好了。您需要发送合适的 http 标头以使 FF 相信该请求能够被缓存,并且值得被缓存。

标签: javascript firefox xmlhttprequest


【解决方案1】:

您是否考虑过针对 Firefox 提交错误?使用bugzilla.mozilla.org。 (如果它询问您要将错误提交到哪里,请使用产品:“核心”,组件:“网络:缓存”。)

<script> 与 XHR 的安全规则是不同的...但这确实不是 Firefox 跳过缓存的理由。

【讨论】:

    【解决方案2】:

    这个网站可以帮助: http://blog.httpwatch.com/2009/08/07/ajax-caching-two-important-facts/ http://www.httpwatch.com/demos/ajax_caching/

    上面讲了很多关于HTTP头操作的内容,所以你应该编写一个输出脚本内容的PHP脚本,并添加适当的缓存头。

    另外,你试过jQuery.ajax({type: "script", cache: true})吗?它有一个缓存选项。 http://api.jquery.com/jQuery.ajax/

    【讨论】:

    • 我之前访问过那个网站,但我必须承认,我看的不够仔细。明天我会调查的。今天实在是太郁闷了。谢谢。
    • 我查看了那个页面。它主要适用于 IE,但方向相反:试图让 IE 丢弃缓存而不是使用它。
    猜你喜欢
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多