我应该在哪个页面上添加javascript?

时间:2012-04-09 16:35:12

标签: javascript ruby-on-rails

我正在构建一个Rails应用程序,似乎常见的做法是在页面顶部列出javascript_include_tags。

它会使浏览器在加载文档之前加载javascript,从而使可见元素加载时间更长吗?

谢谢。

5 个答案:

答案 0 :(得分:5)

据我在网上看到,最佳做法是在body标签的底部加载javascript文件。这使得几乎所有内容在执行javascript之前都会加载,这通常可以防止在您将脚本加载到顶部时访问可能不存在的项目的问题。

答案 1 :(得分:4)

关于网页性能的雅虎帖子建议将它们包含在页面底部(Source),因为如果它们位于顶层,它们可以阻止其他依赖项的并行下载。

答案 2 :(得分:3)

看起来有些答案是正确的,但没有一个总结:

  • 如何防止javascript加载加载其他元素?很简单,在结束</body>标记之前把它放好。这通常意味着HTML页面结束前的几个字符。
  • 将所有javascript放在外部.js文件中。为什么?这样即使HTML页面发生变化,浏览器也可以缓存这些文件。
  • 将所有javascript文件合并并缩小为一个。为什么?由于客户端发出的HTTP请求越少,页面加载的速度就越快。

此外,您不必关心$(document).ready()window.onload,因为所有HTML元素都将在javascript文件之前加载(即,如果您将JS文件放在关闭</body>标签)。

答案 3 :(得分:0)

使用外部JS文件并缩小其内容是个好主意。

页面的底部也是John Fisher所说的选项。

如果使用ie jQuery,在任何情况下都使用$()$(document).ready(function(),这样可以确保在尝试使用JS函数之前加载页面DOM。

答案 4 :(得分:0)

不要将行为嵌入其标记中,而是尝试隔离脚本 通过将其移动到页面部分中的脚本块,超出范围 文件正文如下:

<script type="text/javascript">
window.onload = function() {
document.getElementById('testButton').onclick = function() {
document.getElementById('xyz').style.color = 'red';
};
};
</script>

出于性能原因,脚本块也可以放在底部 虽然现代浏览器具有性能,但是文档正文 差异相当没有意义。重要的概念是避免嵌入行为 结构元素中的元素。