欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js加載之使用DOM方法動(dòng)態(tài)加載Javascript文件

 更新時(shí)間:2013年11月08日 11:50:52   作者:  
傳統(tǒng)上,加載Javascript文件都是使用script標(biāo)簽,我們也可以使用DOM方法,動(dòng)態(tài)加載Javascript文件,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下
傳統(tǒng)上,加載Javascript文件都是使用<script>標(biāo)簽。
就像下面這樣:
<script type="text/javascript" src="example.js"></script>
 
<script>標(biāo)簽很方便,只要加入網(wǎng)頁(yè),瀏覽器就會(huì)讀取并運(yùn)行。但是,它存在一些嚴(yán)重的缺陷。
 ?。?)嚴(yán)格的讀取順序。由于瀏覽器按照<script>在網(wǎng)頁(yè)中出現(xiàn)的順序,讀取Javascript文件,然后立即運(yùn)行,導(dǎo)致在多個(gè)文件互相依賴的情況下,依賴性最小的文件必須放在最前面,依賴性最大的文件必須放在最后面,否則代碼會(huì)報(bào)錯(cuò)。
  (2)性能問(wèn)題。瀏覽器采用"同步模式"加載<script>標(biāo)簽,也就是說(shuō),頁(yè)面會(huì)"堵塞"(blocking),等待javascript文件加載完成,然后再運(yùn)行后面的HTML代碼。當(dāng)存在多個(gè)<script>標(biāo)簽時(shí),瀏覽器無(wú)法同時(shí)讀取,必須讀取完一個(gè)再去讀取另一個(gè),造成讀取時(shí)間大大延長(zhǎng),頁(yè)面響應(yīng)緩慢。
為了解決這些問(wèn)題,可以使用DOM方法,動(dòng)態(tài)加載Javascript文件。
復(fù)制代碼 代碼如下:

  function loadScript(url){
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = url;
    document.body.appendChild(script);
  }

這樣做的原理是,瀏覽器即時(shí)創(chuàng)造出一個(gè)<script>標(biāo)簽,然后"異步"讀取Javascript文件。這樣不會(huì)造成頁(yè)面堵塞,但會(huì)造成另外一個(gè)問(wèn)題:這樣加載的Javascript文件,不在原始的DOM結(jié)構(gòu)之中,因此在DOM-ready(DOMContentLoaded)事件和window.onload事件中指定的回調(diào)函數(shù)對(duì)它無(wú)效。

相關(guān)文章

最新評(píng)論