YUI Loader Utility可靠吗?

时间:2008-09-18 03:40:01

标签: javascript yui

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

3 个答案:

答案 0 :(得分:8)

是的,YUI Loader在所有A级浏览器上都是可靠的。有关哪些浏览器Yahoo!的列表考虑A级,请查看Graded Browser Support Chart

答案 1 :(得分:2)

一般是的。什么都不应该出错,如果确实如此,雅虎很快就会出现问题!

答案 2 :(得分:1)

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

我遇到了3个问题:

  1. 调试 - 调试很困难。是模块的加载器定义中的错误还是模块中的错误(脚本文件)?
  2. 您必须添加自己的'subscibeOnce'函数来添加任何'on modules(s)loaded'处理程序。在模块加载/插入页面后,这将取消订阅处理程序。否则,如果您在页面的生命周期中稍后插入更多模块 - 他们每次都会调用。
  3. 它可以找出哪些依赖关系是有限的。在要求内排序:[](在模块定义中)似乎很重要。我已经看到它试图通过这个列表失败了。
  4. 我使用的是:

    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);
    
相关问题