繁体   English   中英

如果JavaScript位于HTML页面的body标签中,是否可以对其进行缓存?

[英]Can JavaScript be cached if it is in the body tag of an HTML page?

我正在阅读“ 如何使HTML快速呈现”,它说可以缓存HEAD标记中的脚本。

可以缓存BODY标签中的JavaScript吗? 如果不是,为什么YUI建议将脚本放在body标签中?

如果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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM