-
Javascript 실행 순서카테고리 없음 2007. 1. 24. 14:59javascript를 사용해 보기전에 많이 궁금했던게 있다. 여기저기 script tag 들이 들어가면 그 실행순서는 어떻게 될까.. 였다.
그래서 다음의 테스트를 해 보았다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <script language="JavaScript" type="text/javascript"> <!-- document.write("before head<br/>") --> </script> <HEAD> <title>js test</title> <script language="JavaScript" type="text/javascript" src="module1.js"></script> <script language="JavaScript" type="text/javascript"> <!-- document.write("in head<br/>") --> </script> <script language="JavaScript" type="text/javascript" src="module2.js"></script> </HEAD> <BODY> <script language="JavaScript" type="text/javascript"> <!-- document.write( "<script language=\"JavaScript\" type=\"text/javascript\" src=\"module4.js\"></script>") --> </script> <script language="JavaScript" type="text/javascript"> <!-- document.write("in body1<br/>") --> </script> <script language="JavaScript" type="text/javascript" src="module3.js"></script> BODY Contents.<br/> <script language="JavaScript" type="text/javascript"> <!-- document.write("in body2<br/>") --> </script> </BODY> </HTML>
module[1,2,3,4].js의 내용은 각각document.write("module [1,2,3,4]>br/<");
이다. 이때 결과는?before head module 1 in head module 2 module 4 in body1 module 3 BODY Contents. in body2
이다. 너무도 당연하게 script가 있는 순서대로 수행되었다. 심지어는 document.write()로 적어 놓은 script조차도 그 시점에 실행되었다. 그리고 "BOCY Contents." 를 보면 알겠지만, html 문서상의 text에 대한 evaluation과 병행되어 처리된다.ECMAScript 스펙 어딘가에 적혀 있긴 하겠지만... 찾아보기 귀찮아서 예제를 돌려 보았다. Safari와 opera, FireFox에서 위와 같은 결과가 나왔으니.. 다 저 순서로 evaluation한다고 보면 되겠지...