2010-08-05 51 views
1

我想開始將LABjs合併到我的項目中,但我想知道是否有條件加載腳本。例如,類似的東西:LABjs有條件地加載腳本

$LAB 
    .script('framework.js').wait() 
    .script(function(){ 
     if(es){ 
      return 'es.js'; 
     }else{ 
      return ''; 
     } 
    }) 

我還沒有嘗試過,但確定它不起作用。有沒有更好的方法來做到這一點?

感謝

+0

要添加一些更具體的例子,本地化腳本,瀏覽器特定的腳本(必須支持舊的ie6),如果用戶通過身份驗證則不需要的腳本。我確定還有更多。你對這些情況做了什麼? – 2010-08-05 18:43:09

回答

4

其實,LABjs(和一段時間)一直支持有條件的鏈接...在幾個方面。首先,您可以將一個函數傳遞給.script()調用,並且該函數可以在其中包含條件邏輯,該條件邏輯根據條件返回不同的URL字符串(或根本沒有)。其次,鏈現在完全可以恢復(從2.0開始,在幾天內發佈),所以你可以通過簡單地保存鏈的狀態來完成上述博客文章中提到的「模擬鏈」的簡化形式,並且然後拿起並添加到後來,這樣的:

var $L = $LAB.script(...).script(...); 

if (...) { $L = $L.script(...).wait(...); 

// ... 

$L = $L.script(...)..... 
0

我用LABjs我的大多數項目,但是當我需要有條件的鏈接我用yepnode。它與LABjs非常相似,但我更喜歡yepnodes如何處理條件加載。