2016-09-26 4 views
-1

GET으로 페이지를 가져올 때 이 foo() 전에 실행되는 것을보고 있습니다. 왜? 서면으로 명령을 이행 할 수있는 방법은 무엇입니까?인라인 JavaScript 태그는 쓰여진 순서로 실행되지 않습니다.

jquery Ajax 업데이트의 경우 스크립트는 서면 순서대로 실행됩니다. 즉, foo() 전에 bar() 앞에 스크립트가 실행됩니다. 당신의 $에서 JS (...)를 포장

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

당신은 AJAX를 언급하고 (마음이 내가 당신의 아약스 기능이 어떻게 생겼는지 알 수 없기 때문에 어느 정도 의사 코드 당신)하지만 난 볼 수 없습니다 : 그것은 다음과 같이 보일 것입니다 모든 코드는 AJAX를 사용합니다. 작성된 코드는 순서대로 실행됩니다. –

+1

아약스 인 경우 주문 응답이 무엇이 들어 왔는지 보장 할 수 없습니다. 아약스 - 비동기의 A입니다. 두 요청 모두 동일한 서버에 동일한 작업을 수행한다고 가정하면 네트워크 신이 먼저 응답을 확인합니다. –

답변

-3

는 문서 준비에서 실행을 의미하고 있습니다 최적화가 있지만 컴파일러가 우리보다 똑똑하지 않는 한, JS는 (시간의 순차적 99.99 %를 실행 , 그것은 .01 %입니다). , 당신은 둥지 그들에게이 경우에 당신을 도울 수

한 가지 ...

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

foo() 및 bar()가 비동기 호출을하는 경우에도 도움이되지 않을 수 있습니다. 이것이 비동기 호출의 요점입니다. –

+0

이것은 사실이 아닙니다. [원본] (http://stackoverflow.com/a/3934584/111266) –

+0

JS * 순차적으로 실행됩니다. 의지 할 수 없다면 프로그램 할 이유가 거의 없을 것입니다! 비동기 작업은 완료되는 시점에 따라 다르지만 순서에 관계없이 실행될 수 있습니다. –

0

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

+0

차이점이 없습니다. 각각의 '