【问题标题】:How to interpret grey items in Firebug Net panel?如何解释 Firebug Net 面板中的灰色项目?
【发布时间】:2011-10-11 11:02:29
【问题描述】:

我正在尝试在我的 Web 应用程序中调试一些棘手的行为:看起来好像客户端正在发送 XHR GET 请求,但服务器实际上从未收到它。此外,客户端似乎在看不见的请求中接收到与它发送的前一个 XHR 请求一样的重复数据。

更令人困惑的是,Firebug 在 Net 面板中将第二个 XHR 请求着色为浅灰色(这里的请求是倒数第三个,第二个“GET 测试”):

我还没有找到任何关于这种颜色含义的文档。我想如果我理解这一点,它可能有助于解释这种不寻常的行为。

如果有人有任何见解,如果你能告诉我,我将不胜感激。

【问题讨论】:

    标签: javascript xmlhttprequest firebug


    【解决方案1】:

    "Firebug color codes requests that are served from the cache in a lighter gray..."

    所以服务器看不到请求的原因是客户端从未真正发送它,它只是从其缓存中接收响应。如果您使用 jQuery,则可以在 ajax() 上使用 cache 属性来防止缓存 AJAX 请求。如果您不使用 jQuery,您可以在请求 URL 的末尾附加一个虚拟参数,该参数的值是当前时间(以毫秒为单位)(这实际上是 jQuery 所相信的)。

    url + "?v=" + (new Date()).getMilliseconds()
    

    这应该确保 URL 始终是唯一的,并防止浏览器使用缓存。

    【讨论】:

    • +1 反正我还是不明白。当您在之前查看的同一页面上关闭并重新打开 Firefix 时,Firefox 会发出所有这些灰色请求(根据您的链接,这些请求是对缓存而不是对服务器的请求)。但是,当您将同一站点从一个页面导航到另一个页面时,Firefox 甚至不会发出这些灰色请求。这真的让我很困惑,如果这些文件总是被缓存,为什么 Firefox 的行为会有所不同?请参阅我的问题:stackoverflow.com/questions/10048740
    • Firefox 实现了两种类型的缓存。一个 HTTP 缓存和一个 Back-Forward 缓存。见softwareishard.com/blog/firebug/…。目前只有 BFCache 读取以灰色显示。
    • 或者您可以在缓存控制 HTTP 标头中指明每个实体的预期生命周期。或者在 URL 中放置足够的信息来唯一地识别实体,如果随后请求相同的东西,则利用缓存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多