内联JavaScript标记不按书面顺序执行

时间:2016-09-26 21:28:51

标签: javascript jquery execute

使用GET抓取网页时,我看到bar()之前已执行foo()。为什么?如何让它们按书面顺序执行?

对于jquery Ajax更新:脚本按书面顺序执行,即foo()之前的bar()

<div>
   <div>
      <script>$(function(){ foo(); }); </script>
   </div>
   <script>$(function(){ bar(); }); </script>
</div>

3 个答案:

答案 0 :(得分:0)

<script> $(function(){ foo(); }); $(function(){ bar(); }); </script>

答案 1 :(得分:0)

如果您正在使用JQuery ajax并且需要它们按顺序执行,则必须嵌套它们。基本上你需要在另一个函数的回调中执行其中一个。它看起来像这样:(请注意,这有点伪代码,因为我不知道你的ajax函数是什么样的)

.

http://api.jquery.com/Ajax_Events/

答案 2 :(得分:-3)

将js包装在$(...)中意味着它将在文档准备好的情况下运行,虽然它有优化,但js在99.99%的时间内按顺序运行(除非编译器比我们更智能,在那里它是.01%。

在这种情况下可能对你有所帮助的是......

<div>
    <div>
    ...
    </div>
...
</div>
<script>
$(function() {
    foo();
    bar();
};
</script>