我已经用 javascript 开发了几个月,并且在我$(document).ready(function(){
所有脚本的开头一直在使用。我注意到其他人不会在他们的脚本中使用它,但如果没有它我似乎无法让我的工作。我想让我的代码更干净,但是对于我所有的谷歌搜索,我似乎无法弄清楚如何摆脱它。
我知道它告诉浏览器在页面加载后立即执行我的脚本,但是我可以设置一些全局的东西,这样我就不需要在页面加载时明确告诉浏览器执行我的每个脚本?还是脚本在我的 html 文件中的位置是一个更全球性的问题?
我已经用 javascript 开发了几个月,并且在我$(document).ready(function(){
所有脚本的开头一直在使用。我注意到其他人不会在他们的脚本中使用它,但如果没有它我似乎无法让我的工作。我想让我的代码更干净,但是对于我所有的谷歌搜索,我似乎无法弄清楚如何摆脱它。
我知道它告诉浏览器在页面加载后立即执行我的脚本,但是我可以设置一些全局的东西,这样我就不需要在页面加载时明确告诉浏览器执行我的每个脚本?还是脚本在我的 html 文件中的位置是一个更全球性的问题?
您需要 document.ready 可能是因为您在加载之前与 DOM 交互。脚本如何操作尚不存在的元素?
如果您将脚本放在文件末尾,则不需要它。对于许多 Javascript 文件,这样做也是一种很好的做法,因为它们可能需要时间来处理(特别是如果它们是在外部托管的)。将它们放在文件末尾通常会加快页面加载时间。
全部$(document).ready(function() { ... });
或$(function() { ... });
所做的是等待文档准备好进行操作。您应该使用$(document).ready(function() { ... });
or$(function() { ... });
如果您的脚本是内联的或在该<head />
部分中,因为 JavaScript 会按照它在页面上出现的顺序执行,否则。
要取消$(document).ready(function() { ... });
or $(function() { ... });
,只需在所有内容之后将脚本向下移动到页面底部,就在结束</body>
标记之前。
无论如何,将脚本放在底部确实是一种最佳实践。对于这个和其他最佳实践,我建议您查看Html5Boilerplate和Yahoo! 最佳实践。
该$(document).ready()
约定是 jQuery 的一部分,而不仅仅是 JavaScript。从他们关于准备功能的文档中:
这是了解 jQuery 的第一件事:如果你想让一个事件在你的页面上工作,你应该在 $(document).ready() 函数中调用它。它里面的所有东西都会在 DOM 被加载并且页面内容被加载之前加载。
所以是的,它是必需的。jQuery 确实为此提供了简写,因此您可以执行以下操作:
$(function() {
//jquery code
};