我正在构建一个 Rails 应用程序,似乎常见的做法是在页面顶部列出 javascript_include_tags。
是否会使浏览器在加载文档之前加载 javascript,从而使可见元素的加载时间更长?
谢谢你。
我正在构建一个 Rails 应用程序,似乎常见的做法是在页面顶部列出 javascript_include_tags。
是否会使浏览器在加载文档之前加载 javascript,从而使可见元素的加载时间更长?
谢谢你。
据我在网上阅读,最佳实践在 body 标记的底部加载 javascript 文件。这可以让几乎所有内容在执行 javascript 之前加载,如果您在顶部加载脚本,这通常可以防止访问可能不存在的项目时出现问题。
一篇关于网页性能的 Yahoo 帖子建议将它们包含在页面底部(Source),因为如果它们位于顶部,它们可以阻止其他依赖项的并行下载。
看起来有些答案是正确的,但没有一个能概括一切:
</body>
标签之前。这通常意味着 HTML 页面结束前的几个字符。此外,您不必关心$(document).ready()
or window.onload
,因为您的所有 HTML 元素都将在 javascript 文件之前加载(也就是说,如果您将 JS 文件放在结束</body>
标记之前)。
使用外部 JS 文件并缩小其内容是个好主意。
页面底部也是 John Fisher 所说的选项。
如果使用 ie jQuery,您无论如何都要使用$()
或$(document).ready(function()
确保在您尝试使用 JS 函数之前加载页面 DOM。
与其将行为嵌入其标记中,不如尝试通过将脚本移动到页面部分中的脚本块(在文档正文范围之外)来隔离脚本,如下所示:
<script type="text/javascript">
window.onload = function() {
document.getElementById('testButton').onclick = function() {
document.getElementById('xyz').style.color = 'red';
};
};
</script>
出于性能原因,也可以将脚本块放置在文档正文的底部,尽管现代浏览器使性能差异变得毫无意义。重要的概念是避免在结构元素中嵌入行为元素。