html - 如果外部包含的文件(例如 JavaScript 或 CSS)在页面上包含两次(或更多次),是否会有两次(或更多次)网络请求?

标签 html performance http browser caching

假设由于条件注释或粗心大意,某些浏览器甚至所有浏览器的用户都存在相同的包含文件。例如:

<!--[if lte IE 8]>
     <script src="mygreatincludefile.js" type="text/javascript"></script>
<![endif]-->

<!--[if lte IE 6]>
     <script src="mygreatincludefile.js" type="text/javascript"></script>
<![endif]-->

当页面被呈现时,浏览器会知道不要再次获取该文件,或者它会发出请求并且浏览器将返回 304(未修改)。最好的情况似乎是第一个,可接受的情况似乎是第二个选项,而最坏的情况是想要发出新的请求,因为浏览器不知道它刚刚捕获了这个。

您是否亲身经历过此类事情?你希望发生什么?你观察到发生了什么?我是不是应该不担心这件事,并在记住可能是我的情况下打了那个做这件事的人?

最佳答案

在大多数用户代理(包括 IE)中,文件应该被获取一次,但在 JavaScript 的情况下,代码将被执行两次。最好的例子是 <img>标签。图像将加载一次,但可以多次使用。

至于你的例子。同样的操作做两次似乎是徒劳的。你基本上是在说“如果小于或等于 IE8”,然后继续加载同一个文件“如果小于或等于 IE6”,如果它触发了第一条规则,它会自动加载。

关于html - 如果外部包含的文件(例如 JavaScript 或 CSS)在页面上包含两次(或更多次),是否会有两次(或更多次)网络请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217985/

相关文章:

css - CSS Sprite 如何加速网站?

angular - 在 Angular 6 应用程序上向下滚动时删除粘性类?

javascript - 如何在网页执行回发时停止在注册表单上?

html - 在 Thymeleaf 中创建下拉菜单和表单

MATLAB 提高求和运算符的性能

Java监听http消息

http - 具有获取值的文件夹

javascript - JQuery Animate() 从页面底部向上滑动 div

c# - 将关系(规范化)数据表快速插入 SQL Server 2008 数据库

android - 为什么 ACRA 库抛出异常对话框甚至应用程序当前未运行?