我正在尝试提高几个网页的性能,并想了解 javascript 文件是否由 I.E 缓存用于我的内部应用程序。所以,我有 fiddler 来观察发送到服务器的请求。
我可以看到,每次加载创建客户页面时,fiddler 中的请求数量相同,结果为“200”(而不是 304 - 未修改)的相同文件以获取 javascript 文件.其中包括 jquery、knockout 和一些自定义的。
我研究了请求和响应 header (如下),但我发现缓存控制正常,并且没有缓存任何传达它的内容。但是不明白为什么这些相同的 http 请求会出现在 fiddler 中(它传达了一个请求实际上是向服务器发出的)如果它被缓存了。
我每次访问服务器时都能看到相同的请求,这让我感到奇怪:
- 浏览器是否缓存这些?
- 如果没有,这些是否至少缓存在 IIS 中?
- 我怎样才能避免这些不必要的 http 请求,因为这些 javascript 文件根本不会改变?
非常感谢。
最佳答案
您对该文件的请求 有一个Pragma: no-cache
header (在图像的顶部,“请求 header ”下的两行),它告诉您 don't want to use the cached copy 的浏览器和服务器.
您需要查看您是如何发出该请求的,以找出该 header 存在的原因,然后将其删除。
可能性:
您正在通过某种配置为不使用缓存的 AMD 或其他动态加载机制加载它
您正在使用“禁用缓存”选项的开发工具运行,其中大部分已打开
关于javascript - 浏览器缓存 - 如果缓存了 javascript 文件,为什么我会看到重复的 http 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35504865/