假设我有一个相当大的JavaScript文件,压缩到大约100kb左右。这里的文件指的是一个外部文件,可以通过<script src="…">,而不是粘贴到HTML本身。

在HTML中把它放在哪里最好?

<html>
<head>
    <!-- here? -->
    <link rel="stylesheet" href="stylez.css" type="text/css" />
    <!-- here? -->
</head>
<body>
    <!-- here? -->
    <p>All the page content ...</p>
    <!-- or here? -->
</body>
</html>

每个选项之间是否有任何功能差异?


当前回答

使用cuzillion,您可以使用不同的方法测试脚本标签的不同位置对页面加载的影响:内联,外部,“HTML标签”,“文档”。“JS DOM元素”,“iframe”,“XHR eval”。有关差异的解释,请参阅帮助。它还可以测试样式表,图像和iframe。

其他回答

对于100k的Javascript,永远不要把它放在文件中。使用外部脚本Javascript文件。您绝对不可能只在一个HTML页面中使用这么多代码。很可能您正在询问应该在哪里加载Javascript文件,对此您已经得到了满意的答案。

但我想指出的是,现代浏览器通常接受gzip的Javascript文件!只需将x.js文件gzip到x.js.gz,并在src属性中指向它。它不能在本地文件系统上工作,你需要一个web服务器来让它工作。但是传输字节的节省是巨大的。

我已经成功地在Firefox 3, MSIE 7, Opera 9和谷歌Chrome中测试了它。在Safari 3中显然不是这样工作的。

要了解更多信息,请参阅这篇博客文章,以及另一个非常古老的页面,尽管如此,它仍然很有用,因为它指出,web服务器可以检测浏览器是否可以接受gzip的Javascript。如果您的服务器端可以动态地选择发送gzip或纯文本,那么您就可以使页面在所有web浏览器中都可用。

脚本应该包含在body标记的末尾,因为这样HTML将被浏览器解析并在脚本加载之前显示出来。

使用cuzillion,您可以使用不同的方法测试脚本标签的不同位置对页面加载的影响:内联,外部,“HTML标签”,“文档”。“JS DOM元素”,“iframe”,“XHR eval”。有关差异的解释,请参阅帮助。它还可以测试样式表,图像和iframe。

就像其他人说的那样,它应该放在一个外部文件中。我更喜欢在<head />的末尾包含这样的文件。这个方法比机器友好,但这样我总是知道JS在哪里。它只是不像在其他地方包含脚本文件那样可读(恕我冒昧)。

如果你真的需要挤出每一个毫秒,那么你可能应该做雅虎说的。

Yahoo !出色的性能团队建议将脚本放在页面的底部,因为浏览器下载组件的方式不同。

当然,李维的评论“就在你需要它之前,而不是更早”确实是正确的答案,即。“看情况”。