假设由于条件注释或粗心大意,某些浏览器甚至所有浏览器的用户都存在相同的包含文件。例如:
<!--[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/