一個網頁中往往要加載多個外部js文件,這些js文件的執行順序是怎樣的?如何控制js的執行順序?
<script type="text/javascript" src="a.js"></script> <script type="text/javascript" src="b.js"></script>
先加載執行a.js如何讓js按順序執行,完畢后再加載執行b.js。
<script type="text/javascript"> document.write('<script type="text\/javascript" src="a.js"><\/script>'); document.write('<script type="text\/javascript" src="b.js"><\/script>'); </script>
先執行a.js如何讓js按順序執行,完畢后再執行b.js。
<script type="text/javascript"> document.write('<script type="text\/javascript" src="a.js"><\/script>');var sc=document.createElement("script"); sc.setAttribute("src","b.js"); document.getElementsByTagName("head")[0].appendChild(sc); </script>
這就不可以確定誰先執行了,因為通過創建標簽引入的JS,是誰先加載完畢誰先執行,與創建順序無關。
<script type="text/javascript"> var js = document.createElement('script'); js.setAttribute('type', 'text/javascript');js.setAttribute('async', true); //true:按照加載順序;false:按照創建順序 js.setAttribute('src', url); document.getElementsByTagName('head')[0].appendChild(js); </script>
對于創建標簽引入JS來講,在某些高級瀏覽器中有async屬性用于控制是按照加載完畢的順序執行,還是按照創建順序執行。