Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(document).ready()并在页面末尾初始化jQuery_Javascript_Jquery - Fatal编程技术网

Javascript $(document).ready()并在页面末尾初始化jQuery

Javascript $(document).ready()并在页面末尾初始化jQuery,javascript,jquery,Javascript,Jquery,让我说清楚。根据最佳实践,我们应该在页面底部初始化jQuery。如果我们这样做,引用上方对jQuery对象的任何引用(即$或jQuery)都将是空的。但是,对于$(document).ready(),之所以需要此jQuery函数,是因为您希望在加载页面后延迟函数的执行。这似乎是一场冲突 如何使用页面顶部的$(document).ready()功能,并且仍然在页面底部引用jQuery?出于这个原因,我认为jQuery应该在页面顶部初始化 只需将$(document).ready放在初始化jQuer

让我说清楚。根据最佳实践,我们应该在页面底部初始化jQuery。如果我们这样做,引用上方对jQuery对象的任何引用(即
$
jQuery
)都将是空的。但是,对于
$(document).ready()
,之所以需要此jQuery函数,是因为您希望在加载页面后延迟函数的执行。这似乎是一场冲突

如何使用页面顶部的
$(document).ready()
功能,并且仍然在页面底部引用jQuery?出于这个原因,我认为jQuery应该在页面顶部初始化

只需将
$(document).ready
放在初始化jQuery的下面,而不管它在哪里


事实上,尽管你应该把所有的JS放在底部,即使是
$(文档)。准备好了吗如果你想把脚本放在页面底部以提高效率,并且没有其他元素(除了
),你甚至不需要使用
$(文档)。准备好了吗(…)

将代码放在页面顶部在语义上是有意义的,在大多数情况下,加载时间的“节省”可以忽略不计。只有当脚本非常庞大,或者脚本位于另一台可能处于活动状态或不处于活动状态的服务器上时,它才真正起作用


如果您正在链接jQuery,我建议将其放在页面底部。如果您是本地链接jQuery,那么顶部应该可以。只需确保使用最小化的代码。

你说得对。在使用$之前,必须先放置初始jQuery引用,因此如果在页面顶部使用$,则必须在页面顶部引用库。是的,效率建议实际上是将所有javascript放在页面底部。您仍然可以将jQuery初始化作为此javascript的顶部部分,并使用$(function(){…});在那之后,让我恼火的是Telerik MVC的框架需要在页面底部引用它的javascript和它的依赖框架(即jquery),以便它们的控件正常工作。我已经决定暂时使用window.onload()。我听说您烧录了1ce,但我建议:“…/*您的脚本/$(function(){…/您的代码在这里*/}”);”对于这些注释限制我使用的糟糕格式,我深表歉意!当你在写控件的时候,很难做到这一点。你在最初的问题中没有提到这一点:等等。。什么?我的印象是document.ready比将代码粘贴在body标记的末尾更健壮。@SkippyChalmers,
document.ready
body.onload
更健壮,但这两个事件都是DOM完成对页面上元素的解析/执行后激发的事件。如果您将脚本放在页面的末尾,则基本上完成了相同的操作。一个区别是,所有脚本都将在加载回调之前执行,如果执行的代码依赖于尚未加载的库,这一点可能很重要。