YUI Loader Utility可靠吗?

时间:2020-03-06 14:19:53  来源:igfitidea点击:

我一直在使用YUI组件,并想开始使用Loader Utility在页面上指定我的依赖项。根据经验,YUI Loader Utility是在网页中加载Javascript依赖项的可靠方法吗?

解决方案

通常是的。没问题,如果可以,雅虎将立即解决这个问题!

是的,YUI Loader在所有A级浏览器上都是可靠的。有关哪些浏览器的列表,Yahoo!考虑到A级,请查看"分级浏览器支持表"。

我经常使用装载机。这是管理依赖关系和构建库的好方法。

我遇到了3个问题:

  • 调试-很难调试。该错误是模块的加载程序定义中的错误还是模块(脚本文件)中的错误?
  • 我们必须添加自己的" subscibeOnce"函数,才能添加任何"已加载模块"处理程序。在模块加载/插入页面后,这将取消订阅处理程序。否则,如果我们稍后在页面的使用寿命中插入更多模块,则它们每次都会调用。
  • 它可以找出哪些依赖项是有限制的。在require:内的排序似乎很重要。我看到它无法尝试查看此列表。

我用的是这样的:

var TheBase = function(oConfig){
var thisBase = this;
var EVENTS = {
    ON_SCRIPTS_LOADED : "onScriptsLoaded"
    , ON_SCRIPTS_PROGRESS : "onScriptsProgress"
}
for(var eventName in EVENTS){
    thisBase.createEvent(EVENTS[eventName]);    
}
var _loader = new YAHOO.util.YUILoader({
    base: oConfig.yuiBasePath
    ,onSuccess:function(o){
        thisBase.fireEvent(EVENTS.ON_SCRIPTS_LOADED);
    }
    ,onProgress:function(o){
        thisBase.fireEvent(EVENTS.ON_SCRIPTS_PROGRESS,o.name);
    }
})
//optional
    thisBase.loader = _loader;

}

TheBase.prototype = {
subscribeOnce : function(eventName, fnc, context, args){
    var that = this;
    var handler = function hander(){
        fnc.apply(context, arguments);
        that.unsubscribe(eventName, handler);
    }
    this.subscribe(eventName, handler, args, false);
}

}

//事件提供者的增强

YAHOO.lang.augment(TheBase, YAHOO.util.EventProvider);