是否更快包含javascript文件并将其作为<script>
输出到html中,或者仅使用src
属性并让浏览器发出另一个请求?
简单地输出它而不是让浏览器发出另一个请求显然意味着更少的请求和可能更少的服务器负载,但它是否使它更快?包含文件并输出它们不会让浏览器缓存它们。
答案 0 :(得分:5)
如果包含它,则每个不同的页面都会有再次下载脚本的开销。
如果您从外部链接到它,并发送未来的到期标头并使用版本控制缓存(用于更改),您的文件将根据需要下载一次。关于性能主题,请务必缩小或打包您的生产使用JavaScript。
当然,这与您的JavaScript非常相关。如果它是几行而且可能不会改变,那么可以保存一个HTTP请求并将其置于内联。
但是,99%的时间在外部文件中是最佳做法。答案 1 :(得分:2)
这是一个非常复杂的答案。显然,生产环境和开发环境的技术不同。
最后一个很简单:让我们按原样包含你的脚本。
对于生产环境:您应该将所需的js文件连接到一个文件中,缩小并压缩它。您可以从公共cdn中检索库以提高下载性能并减轻服务器负载。
增加的服务器负载(http标头)应该通过缓存来平衡
要提高用户感知的效果,您应该将页面底部的js文件链接到头部
你也应该知道deferred execution,它让浏览器在下载javascript文件时下载其他资源(默认情况下,浏览器一次下载一个javascript,因为它不知道他下载的是否是javascript将在执行期间改变dom。)
最后,如果您的脚本非常短,如果将其直接包含在网页中,您将获得更好的性能
最后,如果你有类似的问题,你应该喜欢阅读: http://developer.yahoo.com/performance/rules.html
答案 2 :(得分:0)
我同意@alex。此外,链接允许在解析页面时并行下载脚本文件。大多数浏览器在解析主页面内容时使用多个线程来下载内容。