如何有效地将yepnope.js与$(document).ready()一起使用?
|
我一直在实现yepnope脚本加载器,作为modernizr.js库的一部分。之后,我已经成功地加载了jQuery和依赖jQuery的脚本。我是异步加载资源的新手,所以对我来说有点新。我一直在搜索,但以下内容并没有带来太多运气。
我的问题是,当您使用yepnope.js框架时,如何有效地替换$(document).ready()功能,您有何看法?
我的理论是在基础库中创建一个适当命名的函数,然后将页面上的该变量设置为包含我现有的$(document).ready()代码的匿名函数。在所有脚本都加载到完整的回调中之后,yepnope将调用此变量。
您是否同意这是一种好方法,还是我完全以错误的方式来对待呢?
(对于那些不知道的情况,yepnope.js的异步特性意味着该文件在yepnope加载程序完成之前调用$或jQuery,并抛出一个“ $ $ undefined \”错误<-如果错误,请更正。)
第一个问题,希望它是一个好问题。
没有找到相关结果
已邀请:
5 个回复
枫湃揩乾纲
版萍层分
然后,将您的yepnope jQuery测试对象设置与此类似:
我们在jQuery加载之前创建一个伪造的$(document).ready()。它将每个$(document).ready()调用存储在一个数组中,即docready。然后,一旦jQuery加载,我们便用现在加载的真实jQuery对象覆盖我们的临时$对象。然后,我们遍历所有存储的$(document).ready()调用,并真正执行它们。 更新:克里斯·琼斯(Chris Jones)的改进版本,还涵盖$(function(){})样式调用。
容淑阔九
您可以肯定地在关闭body标签之前,将其置于$(document).ready()状态。 您需要自己回答的问题是强制以$(document).ready()方式加载yepnope是否有意义,因为其主要目的是首先破坏脚本标记的同步加载顺序。
赐黄
属性来调用我的ready函数。这意味着文档已有效准备就绪,并且代码可以正常工作。 我也将js移到了页面的底部(这是我早就应该做的事情,但是我们有很多旧页面!:)) 这是一个示例(使用虚假的libray /脚本名称仅用于说明目的):
在我的页面js中,我将为
分配一个函数,然后由yepnope调用该函数。
抽法