![](/img/trans.png)
[英]Can an HTML page be cached which has a link to dynamic JavaScript?
[英]Can JavaScript be cached if it is in the body tag of an HTML page?
如果JavaScript在外部文件中, 并且缓存控制标头表示应对其进行缓存,则将对其进行缓存(并在页面之间重用)。
如果将其嵌入页面本身(即<script>
和</script>
而不是src="..."
的末尾),则可以将其缓存,但前提是要缓存整个页面,并且不会在页面之间可重复使用。
如果<script src="..."></script>
在头部或正文中,则对缓存没有影响。
如果您缓存整个HTML页面,则将缓存该代码,否则将被缓存。 现在,HTML页面通常是动态的(由脚本和CGI生成),因此,在不牺牲功能的情况下就不可能进行缓存。 因此,您通常希望将JS代码放在外部文件中,然后可以通过为JS文件设置HTTP缓存标头来对其进行缓存。
在大多数情况下,答案是您无法缓存内联到HTML代码中的JavaScript(在HEAD部分或其他部分)。 要使其可缓存,您需要将其放入外部文件中,但是随后浏览器将需要执行额外的HTTP请求以首次获取JavaScript。
伴侣,我想您可能误解了里奇所说的话。 他说,将JavaScript放入外部文件并从头开始进行链接。
这与将JavaScript放入页面正文中的script标签相反。
如果仅在该页面上使用JavaScript,则将其放入页面正文中的script标签中是合理的。 实际上,如果仅使用该页面中的一个页面,则将其放置到外部文件中并不是最佳选择。 对于JS文件额外的GET请求将在Firefox,歌剧,Safari浏览器几乎同时发生,但不能在IE6。 原因是IE6只有几(2)个线程可用于提取文件,而Firefox最多有16个。这就是为什么为页面特定代码使用单独的文件会倒退一步,因为这实际上可能会降低页面加载。
但是,如果您有一个要在许多页面上使用的通用JavaScript文件,那么您绝对应该将其放置在一个外部文件中并从头开始进行链接,因为它将在所有这些页面中的任何一个首次加载时被缓存,并且它不会当任何其他网页的使用它来重新获取。 文件越大,缓存文件的优势越大。
我认为这就是他的意思。 有帮助吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.