我们最近迁移到 jQuery 1.6 并遇到了 attr() 与 prop() 反向兼容问题。在部署更改后的最初几个小时内,一切都很好,然后它开始对人们造成破坏。我们很快发现了问题并更新了有问题的内联 JS。
不,我们的情况是有些人仍然有问题。到目前为止,在每种情况下,我都可以让用户重新启动并运行,方法是告诉他们加载有问题的页面,然后在浏览器中手动刷新它。所以某些东西仍然必须缓存在某个地方。
但基本上只有两个潜在的罪魁祸首:首先,jQuery 库本身,但它在查询字符串中加载了版本号,因此我认为浏览器会在其缓存中刷新它。二、内联javascript。这是否可能被缓存在浏览器中?
我们正在使用 APC,apc.stat=1 因此它应该检测到 PHP 文件已更改。为了安全起见,我还是核对了操作码缓存。
总结一下,我有两个问题:
- 某些浏览器会在加载 jQuery 时忽略查询字符串吗?
- 某些浏览器是否可以缓存旧版本的内联 javascript?
也欢迎任何其他想法。
更新:在使用 Firebug 检查是否没有任何意外缓存的过程中,我发现了一个旧的 jQuery 库会加载的情况。这并不能解释为什么我们在部署网站之后和更新内联代码之前遇到问题,但如果它解决了问题,我会接受它。
最佳答案
这两个问题的答案是否定的。 除非整个页面都被缓存。浏览器不能缓存文件的一部分,因为它必须下载它才能知道它缓存了哪些部分,到那时它已经全部下载了。这没有意义:)
您可以尝试随页面一起发送一些 header ,强制浏览器不使用它的缓存副本。
关于javascript - 浏览器是否缓存内联 Javascript,如果是,如何强制重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839242/