【问题标题】:IE7 does it well but IE8 does not load the javascript gallery script - whats wrong?IE7 运行良好,但 IE8 不加载 javascript 库脚本 - 有什么问题?
【发布时间】:2011-01-14 00:14:30
【问题描述】:

我有一个 javascript Galleria,它可以在每个现代浏览器中运行,即使在 IE7 中也是如此。但是在 IE8 中,如果它的加载.. 它不显示画廊.. 但是如果我按 Ctrl + F5 它会重新加载,它会擦除​​缓存,最后会出现画廊.. 如果我只是重新加载页面.. 或者如果我用相同的 Galleria 脚本转到另一个页面,问题又来了.. 所以我需要一个 IE8 的硬重新加载脚本。

伪代码:

On Document Load

If user agent IE8 {
erase website cache
}

do normally continue webpage loading..

【问题讨论】:

  • 为什么要这样做?用户代理嗅探几乎总是错误的。你真正想解决什么问题?
  • 我有一个 javascript Galleria,它可以在每个现代浏览器中运行,即使在 IE7 中也是如此。但是在 IE8 中,如果它的加载.. 它不显示画廊.. 但是如果我按 Ctrl + F5 它会重新加载,它会擦除​​缓存,最后会出现画廊.. 如果我只是重新加载页面.. 或者如果我用相同的 Galleria 脚本转到另一个页面,问题又来了.. 所以我需要一个 IE8 的硬重新加载脚本。
  • 为什么不就这个(真正的)问题寻求解决方案?!
  • 我只是有点困惑.. 因为 IE7 做得很好。 IE8 让我讨厌。而且 Galleria-script 也不容易调试,特别适合我这个新手熟练的 javascript 程序员。
  • ifaour 和 Craig 是对的,您通常想提及您的问题。提出可能的解决方案是可以的,但很多时候你想到的解决方案并不是很好。在这种情况下,您应该弄清楚为什么IE8不是缓存时的页面。添加到测试版本的链接怎么样?更好的是,减少问题?我经常自己找到答案,因为我创造了一个问题的最简单的可能减少。

标签: javascript internet-explorer-8 loading cache-control


【解决方案1】:

问题不在客户端。问题是你的服务器。 IE 将积极缓存对 AJAX 请求的响应,除非服务器在响应中设置 Cache-Control: no-cache。清除浏览器中的缓存是错误的解决方法,因为服务器应该决定哪些是当前的,哪些不是。

因此,更改服务器对您的请求的响应以包含正确的标头。

【讨论】:

  • 但是,怎么会是一个浏览器的问题呢?
  • @ifaour,因为 IE 与 Firefox 或 Chrome 相比,在服务器不提供 Cache-Control 标头的情况下缓存 AJAX 请求的默认策略不同。不确定 Safari 或 Opera。
【解决方案2】:

查看有关清除缓存的链接! Clear all website cache?

【讨论】:

    【解决方案3】:

    伪造清除缓存的一种可能方法是将缓存破坏器附加到您的资源之类的页面中的所有资源

    "test.js?cacheBuster=" + new Date())
    

    这应该是最后的手段。

    【讨论】:

      【解决方案4】:

      使用 javascript 您将无法做到这一点。你可以做的是用你的服务器端语言编写代码,这样整个页面就不会被缓存。

      【讨论】:

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