JQuery加载延迟。如何确保加载jQuery?

时间:2014-07-11 21:46:13

标签: javascript jquery jquery-deferred deferred

我正在加载jquery,因为没有遇到pagespeed的问题。但是现在可能会发生我的脚本在加载jQuery之前执行的内容。这会导致像jQuery函数未定义的错误。如何确保加载jQuery?

1 个答案:

答案 0 :(得分:1)

您没有显示您用于加载jQuery延迟的代码,但是如果您想以这种方式加载它,那么您必须通过某种onload触发任何使用jQuery的代码在jQuery成功加载时调用的回调。

所有在页面加载时使用jQuery的代码都必须最初从这个onload处理程序调用的东西中调用。直到加载jQuery之后,你才能直接使用$(document).ready()

如果您包含用于加载jQuery的代码,我们可以更具体地了解如何知道它何时加载。有些库可以为您处理,但是自己编写代码也不是很多代码。

例如,如果您使用defer标记中的<script>属性并且使用IE9或更高版本即可,则可以执行以下操作:

<script>
function jQueryLoaded() {
    // put your page initialization code that uses jQuery here
    // or call some other functions that do your page initialization
}
</script>
<script defer="defer" onload="jQueryLoaded()" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

如果您希望跨浏览器兼容性比IE9更进一步,那么您应该动态添加脚本标记,以便可以使用readystatechange事件处理程序在旧版本的IE中监视它。有关详细信息,请参阅this post中的loadScript()功能。