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);