2011-07-05 2 views
1

외부의 .js 파일에서 라이브러리 함수를 사용하는 가능한 한 페이지 처리 초기에 HTML 페이지에서 일부 인라인 자바 스크립트를 실행하려고합니다.HTML 문서의 머리 부분에있는 외부 스크립트가 본문에 포함 된 스크립트보다 먼저 실행되도록 보장됩니까?

필자는 항상 라이브러리 스크립트를 머리에 넣고 본문의 클라이언트 스크립트를 작동시키는 것처럼 보였지만 문서의 머리 부분에 포함 된 외부 스크립트는 보장됩니다. (w3schools 사이트를 제외하고는 평판이 좋은 참조로 간주되지 않습니다.)

설명하기 위해 HTML에 대한 User-Agent 동작에 대해 궁금합니다. 이렇게 :

<html> 
    <head> 
     <script type="text/javascript src="libraryModule.js"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
     // is this guaranteed to run after the external script? 
     // or is it possible this module that the external library 
     // adds to the global namespace won't be there yet? 
     var result = ModuleInExternalLibrary.DoLibraryThing(); 
     </script> 
    </body> 
</html> 

어디에서 문서화되어 있습니까? 나는 모든 주요 브라우저의이 영역에서 동작을 요약 한 W3C 사양이나 좋은 게시물에서 아무것도 찾을 수 없습니다. 링크를 제공하십시오.

외부 스크립트가 실행되도록 보장하기 위해 onload 이벤트가 발생할 때까지 기다리지 않아도됩니까?

답변

5

<script></script> 태그 사이에 나타나는 JavaScript 문은 표시 순서대로 실행됩니다. 그래서 네가 지연된 로딩이나 이와 비슷한 뭔가를 똑똑하게하지 않는 한, 그것은 보장됩니다.

Execution of JavaScript Programs

+0

감사합니다. 내 고객이 귀하가 네트워크에서 연결 한 URL을 차단했지만 나중에 확인해 보겠습니다. 관련 메모에서 외부 스크립트 태그가 소스를 가져 오는 동안 다른 태그의 실행을 차단한다고 생각합니까? 그래서 실행 순서는 HTML에서 맨 아래로 나타나는 것처럼 하나의 쓰레드를 처리하는 것으로 귀착됩니까? w3c 스펙에서 외부 스크립트가 실행되는 방법에 대한 설명을 찾을 수 없습니다. –

관련 문제