我做了一个非常简单的例子(改编自我的真实项目),它使用 LABjs (v2.0.3) 加载 javascript 文件并以给定的顺序执行它们。我正在粘贴下面的代码。
- 由于 testLAB.js 等待 mainCanvas.js,而 mainCanvas.js 等待 events.js,我希望警报的顺序是:“events.js”“mainCanvas.js”“testLAB.js”。
- 但是,我通常得到相反的顺序:“testLAB.js”“mainCanvas.js”“events.js”。
- 有时我会得到“testLAB.js”“events.js”“mainCanvas.js”。
谁能解释一下?
完整的例子可以在这里下载。
编辑:我正在使用 node.js 和http-server 模块在本地提供这些页面(以防您也想在本地尝试)
文件: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/app/testLAB.js
$LAB.setGlobalDefaults({
BasePath: "/js/",
Debug:true
});
$LAB
.script("lib/underscore.min.js")
.script("app/mainCanvas.js").wait(function(){
alert("testLAB.js");
});
文件:js/app/mainCanvas.js
$LAB
.script("lib/jquery.js").wait()
.script("lib/underscore.min.js")
.script("app/events.js")
.wait(function() {
alert("mainCanvas.js");
});
文件:js/app/events.js
$LAB
.script("lib/jquery.js")
.script("lib/underscore.min.js")
.wait(function() {
alert("events.js");
});