2010-02-07 48 views
0

我对实现以下最佳实践有点困惑: 我有一个需要加载2个JS库(jQuery和swfobject)的对象,他们可能已经加载或没有,所以我有在调用最终方法(输出)之前检查两者。 另一个棘手的事情是,我必须传递一些参数到初始方法(gen),这些参数必须传递到输出。我应该使用.apply吗?回调结构

var myfancymethod = { 
    zclk: "string1", 
    zclk2: "string2", 

    loadsrc: function(what){ 
     jQuery.getScript(what, function() { 
      alert (what+ "loaded"); 

     }); 
    }, 


    checklibs: function(){ 
     if (typeof libA == "undefined") { 
      this.loadsrc("libA.js"); 
     } 
     if (typeof libB == "undefined") { 
      this.loadsrc("libB.js"); 
     } 

    }, 

    output: function (a, b, c){ 
     //final output here 
    }, 


    gen: function(a, b, c, d){ 
     //have to check if libray A and B are loaded 
     this.checklibs(); 

     //call to output() 
     ? 




    } 




myfancymethod.gen(a, b, c, d); 

回答

0

如果您将库按照正确的顺序放置在页面的HEAD部分,它们将按照该顺序到达。所以不需要“checklibs”逻辑。

然后为了确保所有的东西都加载了,包含了DOM元素。 您将调用放到您的“输出”函数中,并放在BODY标签末尾的SCRIPT标签中。