3

包含一个javascript文件并将其作为a输出到html中会更快,<script>还是只使用该src属性并让浏览器发出另一个请求?

简单地输出它而不是让浏览器发出另一个请求显然意味着更少的请求和可能更少的服务器负载,但它是否使它更快?包含文件并输出它们不会让浏览器缓存它们。

4

3 回答 3

5

如果包含它,每个不同的页面都会有再次下载脚本的开销。

如果您从外部链接到它,并发送未来的到期标头并使用带有缓存破坏器的版本控制(用于更改),您的文件将根据需要下载一次。在性能方面,请务必缩小或打包您的生产使用 JavaScript。

当然,这与您的 JavaScript 非常相关。如果它只有几行并且可能不会更改,那么也许您可以保存那个 HTTP 请求并将其置于内联。

但是,在 99% 的情况下,最佳做法是在外部文件中。

于 2011-03-01T01:38:25.437 回答
2

这是一个相当复杂的答案。显然,生产环境和开发环境的技术不同。

最后一个非常简单:让您的脚本按原样包含在内。

生产环境:将需要的js文件拼接成一个文件,压缩压缩。您可以从公共 cdn 检索库以提高下载性能并减轻服务器负载。

增加的服务器负载(http 标头)应该由缓存来平衡

为了提高用户感知的性能,您应该将您的 js 文件链接到页面底部,而不是链接到 head 部分

您也应该知道延迟执行,它让浏览器在下载 javascript 文件时下载其他资源(默认情况下,浏览器一次下载一个 javascript,因为它不知道他下载的 javascript 是否会在他的执行)。

最后,如果您的脚本很短,如果您将其直接包含在网页中,您将获得更好的性能

最后,如果您有类似的问题,您应该喜欢阅读以下内容:http: //developer.yahoo.com/performance/rules.html

于 2011-03-01T01:47:13.357 回答
0

我同意@alex。此外,链接允许在解析页面时并行下载脚本文件。大多数浏览器在解析主页内容时使用多个线程来下载内容。

于 2011-03-01T01:41:14.737 回答