浏览器缓存 - 如果 javascript 文件被缓存,为什么我会看到重复的 http 请求?
Browser Caching - Why do I see repetitive http requests for javascript files if they are cached?
我正在尝试提高几个网页的性能,并想了解 javascript 文件是否由 I.E 缓存或不用于我的内部应用程序。所以,我有提琴手来观察发送到服务器的请求。
我可以看到,每次加载创建客户页面时,提琴手中的请求数量相同,结果相同的文件为“200”(而不是 304 - 未修改)获取 javascript 个文件。其中包括 jquery、淘汰赛和一些自定义的。
我研究了请求和响应 header(如下),但我发现 cache-control 没问题,没有缓存任何传达它的信息。但是不明白为什么这些相同的 http 请求会出现在 fiddler 中(它传达了一个请求实际上是对服务器发出的)如果它被缓存了。
我每次访问服务器时都能看到相同的请求,这让我感到奇怪:
- 浏览器是否缓存这些?
- 如果没有,这些是否至少缓存在 IIS 中?
- 我怎样才能避免这些不必要的 http 请求,因为这些 javascript 文件根本没有改变?
非常感谢。
您对文件的 请求 有一个 Pragma: no-cache
header(在您的图片顶部,"Request Headers" 下面两行) , 它告诉浏览器和服务器你 don't want to use the cached copy.
您需要查看您是如何发出该请求的,以找出 header 存在的原因,然后摆脱它。
可能性:
您正在通过某种配置为不使用缓存的 AMD 或其他动态加载机制加载它
您是 运行 开发工具,其中 "disable cache" 选项大多数已打开
我正在尝试提高几个网页的性能,并想了解 javascript 文件是否由 I.E 缓存或不用于我的内部应用程序。所以,我有提琴手来观察发送到服务器的请求。
我可以看到,每次加载创建客户页面时,提琴手中的请求数量相同,结果相同的文件为“200”(而不是 304 - 未修改)获取 javascript 个文件。其中包括 jquery、淘汰赛和一些自定义的。
我研究了请求和响应 header(如下),但我发现 cache-control 没问题,没有缓存任何传达它的信息。但是不明白为什么这些相同的 http 请求会出现在 fiddler 中(它传达了一个请求实际上是对服务器发出的)如果它被缓存了。
我每次访问服务器时都能看到相同的请求,这让我感到奇怪:
- 浏览器是否缓存这些?
- 如果没有,这些是否至少缓存在 IIS 中?
- 我怎样才能避免这些不必要的 http 请求,因为这些 javascript 文件根本没有改变?
非常感谢。
您对文件的 请求 有一个 Pragma: no-cache
header(在您的图片顶部,"Request Headers" 下面两行) , 它告诉浏览器和服务器你 don't want to use the cached copy.
您需要查看您是如何发出该请求的,以找出 header 存在的原因,然后摆脱它。
可能性:
您正在通过某种配置为不使用缓存的 AMD 或其他动态加载机制加载它
您是 运行 开发工具,其中 "disable cache" 选项大多数已打开