javascript - 浏览器缓存 - 如果缓存了 javascript 文件,为什么我会看到重复的 http 请求?

标签 javascript http iis internet-explorer-11 browser-cache

我正在尝试提高几个网页的性能,并想了解 javascript 文件是否由 I.E 缓存用于我的内部应用程序。所以,我有 fiddler 来观察发送到服务器的请求。

我可以看到,每次加载创建客户页面时,fiddler 中的请求数量相同,结果为“200”(而不是 304 - 未修改)的相同文件以获取 javascript 文件.其中包括 jquery、knockout 和一些自定义的。

我研究了请求和响应 header (如下),但我发现缓存控制正常,并且没有缓存任何传达它的内容。但是不明白为什么这些相同的 http 请求会出现在 fiddler 中(它传达了一个请求实际上是向服务器发出的)如果它被缓存了。

我每次访问服务器时都能看到相同的请求,这让我感到奇怪:

  1. 浏览器是否缓存这些?
  2. 如果没有,这些是否至少缓存在 IIS 中?
  3. 我怎样才能避免这些不必要的 http 请求,因为这些 javascript 文件根本不会改变?

enter image description here

非常感谢。

最佳答案

您对该文件的请求 有一个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/

相关文章:

javascript - 如何在每次键入时将在文本框中键入的值传递到 Controller ,而无需使用提交按钮。

Javascript:如何遍历文件

javascript - 如何让导航栏根据单击的按钮显示文本

python - python中的代理检查

根据服务器可用性将 HTML 重定向到不同的 URL

javascript - 使用 Team CIty 的 REST API 在构建数组中提取每个构建的更多信息

javascript - golang api 请求在浏览器中有效,但在从本地运行的 JavaScript 请求时返回 401(未经授权)

wcf - (413) 请求实体太大 |上传预读大小

iis - 在 Windows 上使用 ngrok 和 IISExpress

iis - 将 ASP.NET MVC 4 部署到暂存并最终部署到 Windows Azure