首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何强制顺序执行Javascript?

如何强制顺序执行Javascript?
EN

Stack Overflow用户
提问于 2009-12-07 18:36:49
回答 7查看 155.6K关注 0票数 70

我只找到了涉及类、事件处理程序和回调的相当复杂的答案(在我看来,这似乎是一种大锤方法)。我认为回调可能是有用的,但我似乎无法在最简单的上下文中应用这些回调。请参阅此示例:

代码语言:javascript
复制
<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,我在这个新示例中看到它确实是同步的(以及在测试过程中使我的浏览器崩溃!):

代码语言:javascript
复制
<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,如果我自己不能到达任何地方,我将不得不发布一个关于这个问题的单独问题!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1859185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档