javascript - 浏览器是否缓存内联 Javascript,如果是,如何强制重新加载?

标签 javascript browser-cache

我们最近迁移到 jQuery 1.6 并遇到了 attr() 与 prop() 反向兼容问题。在部署更改后的最初几个小时内,一切都很好,然后它开始对人们造成破坏。我们很快发现了问题并更新了有问题的内联 JS。

不,我们的情况是有些人仍然有问题。到目前为止,在每种情况下,我都可以让用户重新启动并运行,方法是告诉他们加载有问题的页面,然后在浏览器中手动刷新它。所以某些东西仍然必须缓存在某个地方。

但基本上只有两个潜在的罪魁祸首:首先,jQuery 库本身,但它在查询字符串中加载了版本号,因此我认为浏览器会在其缓存中刷新它。二、内联javascript。这是否可能被缓存在浏览器中?

我们正在使用 APC,apc.stat=1 因此它应该检测到 PHP 文件已更改。为了安全起见,我还是核对了操作码缓存。

总结一下,我有两个问题:

  1. 某些浏览器会在加载 jQuery 时忽略查询字符串吗?
  2. 某些浏览器是否可以缓存旧版本的内联 javascript?

也欢迎任何其他想法。

更新:在使用 Firebug 检查是否没有任何意外缓存的过程中,我发现了一个旧的 jQuery 库会加载的情况。这并不能解释为什么我们在部署网站之后和更新内联代码之前遇到问题,但如果它解决了问题,我会接受它。

最佳答案

这两个问题的答案是否定的。 除非整个页面都被缓存。浏览器不能缓存文件的一部分,因为它必须下载它才能知道它缓存了哪些部分,到那时它已经全部下载了。这没有意义:)

您可以尝试随页面一起发送一些 header ,强制浏览器不使用它的缓存副本。

关于javascript - 浏览器是否缓存内联 Javascript,如果是,如何强制重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839242/

相关文章:

javascript - Angular 6服务注入(inject)异常

javascript - 报价生成器 JavaScript

performance - Chrome 加载资源很慢 `(from disk cache)`

c# - 强制浏览器使用新的 JavaScript 文件而不是缓存的

jquery - 如何修复浏览器缓存和未修改的 JSON 响应? jQuery.ajax({ifModified :true, cache:true}) JSON 请求在数据响应时中断

php - 图像、php、js 和 html 的缓存

javascript - 图像预加载和缓存不适用于 FIREFOX 中的 javascript 或 html

javascript - 我如何将函数作为带参数的参数传递

javascript - Firefox(和其他浏览器)中的 css/javascript 缓存是如何工作的

javascript - 在 Sinatra 上使用 express.js 而不是 Ruby 的想法?