我做了一個非常簡單的例子(改編自我的真實項目),它使用LABjs(v2.0.3)加載javascript文件並按給定順序執行它們。我正在粘貼下面的代碼。錯誤的執行順序使用LABjs
- 由於testLAB.js等待mainCanvas.js,誰events.js等待,我希望警報的順序是: 「events.js」 「mainCanvas.js」 「testLAB.js」。
- 但是,我通常得到相反的順序:「testLAB.js」「mainCanvas.js」「events.js」。
- 有時我會得到「testLAB.js」「events.js」「mainCanvas.js」。
有人可以解釋嗎?
完整的示例可以下載here。
編輯:我如何使用Node.js和http-server module在本地提供這些網頁(如果你想嘗試一下當地以及)
文件:index.html的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test lab.js</title>
<script src="js/lib/LAB.js"></script>
<script src="js/app/testLAB.js"></script>
</head>
<body>
</body>
</html>
文件:JS /應用/ testLAB.js
$LAB.setGlobalDefaults({
BasePath: "/js/",
Debug:true
});
$LAB
.script("lib/underscore.min.js")
.script("app/mainCanvas.js").wait(function(){
alert("testLAB.js");
});
文件:JS /應用/ mainCanvas.js
$LAB
.script("lib/jquery.js").wait()
.script("lib/underscore.min.js")
.script("app/events.js")
.wait(function() {
alert("mainCanvas.js");
});
文件:JS /應用/ events.js
$LAB
.script("lib/jquery.js")
.script("lib/underscore.min.js")
.wait(function() {
alert("events.js");
});
非常感謝,我現在能夠解決我的問題! – mnieber