繁体   English   中英

headjs的解析顺序

[英]headjs order of parsing

我正在研究headjs(http://www.headjs.com),以加快javascript的加载速度。 从文档看,很可能可以控制脚本的执行顺序,但是,解析顺序是另一回事,而且还不确定。

在走这条路线之前,我想知道以下内容是否可能会带来问题:

并行加载jquery.js和scripts.js,例如:

head.js("//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js","/js/script.js");

scripts.js除其他外,还具有一些扩展jquery的功能,例如:

$.fn.extend({ myMethod: function(){...} });

如果在jquery.js之前恰好加载了scripts.js(并对其进行了解析),或者仅在执行脚本时才检查了“ $”的定义,这是否可能会带来一个解析问题(“ $”或“ jquery”未定义)? (这不会带来问题,因为scripts.js是在jquery之后执行的)

我测试了一下,不管顺序如何: head.js("//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js","/js/script.js");

head.js("/js/script.js","//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js");

该扩展似乎在工作时起作用:

head.ready(function() { $('#someel').myMethod(); });

不知何故,我感到很高兴,但同时,我谨慎地相信每次都会起作用。 毕竟,当定义要在“ jquery.js”之前执行的“ scripts.js”时,我希望未定义“ $”。

对此事有些感激!

谢谢,吉尔特·简

通过head.js文档, ready方法将触发:

在所有脚本都已加载并且文档可编写脚本之后

因此,无论包含顺序如何, head.ready的代码head.ready应该可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM