我只发现了涉及类,事件处理程序和回调的相当复杂的答案(在我看来,这似乎是一种大锤方法)。我认为回调可能有用,但我似乎无法在最简单的上下文中应用这些回调。请参阅以下示例:
<html>
<head>
<script type="text/javascript">
function myfunction() {
longfunctionfirst();
shortfunctionsecond();
}
function longfunctionfirst() {
setTimeout('alert("first function finished");',3000);
}
function shortfunctionsecond() {
setTimeout('alert("second function finished");',200);
}
</script>
</head>
<body>
<a href="#" onclick="javascript:myfunction();return false;">Call my function</a>
</body>
</html>
这样,第二个功能在第一个功能之前完成;强制第二个功能延迟执行直到第一个功能完成的最简单方法是什么(或有没有?)?
- -编辑 - -
因此,这是一个垃圾示例,但是感谢David Hedlund,我在这个新示例中看到了它确实是同步的(以及在测试过程中使浏览器崩溃!):
<html>
<head>
<script type="text/javascript">
function myfunction() {
longfunctionfirst();
shortfunctionsecond();
}
function longfunctionfirst() {
var j = 10000;
for (var i=0; i<j; i++) {
document.body.innerHTML += i;
}
alert("first function finished");
}
function shortfunctionsecond() {
var j = 10;
for (var i=0; i<j; i++) {
document.body.innerHTML += i;
}
alert("second function finished");
}
</script>
</head>
<body>
<a href="#" onclick="javascript:myfunction();return false;">Call my function</a>
</body>
</html>
因为我的实际问题是jQuery和IE,所以如果我自己什么也找不到的话,我将不得不另外提出一个问题!