來自:眾成翻譯? 譯者:邊城
動態(tài)創(chuàng)建 元素
加載和處理腳本需要時間迂求,但有些時候窜醉,加載了腳本卻從未使用。加載這樣的腳本純粹是在浪費(fèi)時間和資源斥季,最好根本就不要加載不使用的腳本。通過一個簡單的加載器腳本可以檢查其它腳本是否會用到,只有在腳本實(shí)際用到的時候才創(chuàng)建腳本元素。
理論上來說,在頁面加載完成之后可以通過 SCRIPT 元素來加載額外的腳本并通過 DOM 添加到文檔中劫拗。當(dāng)前所有主流瀏覽器都支持這樣做,但是它實(shí)際上可能是在瀏覽器上請求而不是立即加載腳本矾克。另外页慷,如果需要在頁面加載完成之前加載腳本,就最好在腳本加載的過程中進(jìn)行檢查并使用 document.write 來創(chuàng)建腳本標(biāo)簽胁附。千萬記得要轉(zhuǎn)義斜杠以免過早結(jié)果當(dāng)前腳本:
if(document.createElement && document.childNodes) { ?document.write('<\/script>');}if(window.XMLHttpRequest) { ?document.write('<\/script>');}
location.replace() 控制歷史記錄
偶爾是需要使用腳本來改變頁面地址酒繁。最典型的做法是給 location.href 賦予一個新地地址。這樣做會添加一個歷史記錄控妻,同時加載一個新的頁面州袒,這和激活一個普通的鏈接一樣。
在某些情況下弓候,并不希望出現(xiàn)一條額外的歷史記錄郎哭,因?yàn)橛脩舨恍枰氐街暗捻撁妗H绻趦?nèi)存特別重要的環(huán)境下菇存,這樣做就非常有用夸研。當(dāng)前頁面使用的內(nèi)存可以通過替換歷史記錄來得到重新利用,使用 location.replace() 方法就可以做到撰筷。
`location.replace('newpage.html');`
請注意陈惰,該頁可能仍然保留在緩存中,并可能在那里使用內(nèi)存毕籽,但不會用到像保存在歷史記錄里那么多。
京程一燈井辆,夢起的地方关筒,我們始終相信通過努力,可以改變自己的命運(yùn)杯缺。
我們始終相信蒸播,通過堅持不懈,可以為大家解決更多的前端技術(shù)問題萍肆。
我們始終相信袍榆,時間可以證明,我們可以為廣大IT從業(yè)者解決前端學(xué)習(xí)路線塘揣。
HTML5包雀,CSS3,Web前端亲铡,jquery才写,javascript葡兑,前端學(xué)習(xí)路線,各類問題赞草,我們都可以為你解決讹堤。
更多技術(shù)好文,前端問題厨疙,面試技巧洲守,請關(guān)注京程一燈(原一燈學(xué)堂)