js實(shí)現(xiàn)延遲加載的幾種方法
js的延遲加載有助與提高頁(yè)面的加載速度,以下是延遲加載的幾種方法:
1.使用setTimeout延遲方法的加載時(shí)間
延遲加載js代碼,給網(wǎng)頁(yè)加載留出更多時(shí)間
<script type="text/javascript" > function A(){ $.post("/lord/login",{name:username,pwd:password},function(){ alert("Hello"); }); } $(function (){ setTimeout('A()', 1000); //延遲1秒 }) </script>
2.讓js最后加載
例如引入外部js腳本文件時(shí),如果放入html的head中,則頁(yè)面加載前該js腳本就會(huì)被加載入頁(yè)面,而放入body中,則會(huì)按照頁(yè)面從上倒下的加載順序來(lái)運(yùn)行JavaScript的代碼~~~ 所以我們可以把js外部引入的文件放到頁(yè)面底部,來(lái)讓js最后引入,從而加快頁(yè)面加載速度
3.上述方法2也會(huì)偶爾讓你收到Google頁(yè)面速度測(cè)試工具的“延遲加載javascript”警告。所以這里的解決方案將是來(lái)自Google幫助頁(yè)面的推薦方案。
//這些代碼應(yīng)被放置在</body>標(biāo)簽前(接近HTML文件底部) <script type="text/javascript"> function downloadJSAtOnload() { var element = document.createElement("script"); element.src = "defer.js"; document.body.appendChild(element); } if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false); else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload); else window.onload = downloadJSAtOnload; </script>
這段代碼意思是等到整個(gè)文檔加載完后,再加載外部文件“defer.js”。
使用此段代碼的步驟:
1).復(fù)制上面代碼
2).粘貼代碼到HTML的標(biāo)簽前 (靠近HTML文件底部)
3).修改“defer.js”為你的外部JS文件名
4).確保你文件路徑是正確的。例如:如果你僅輸入“defer.js”,那么“defer.js”文件一定與HTML文件在同一文件夾下。
注意:這段代碼直到文檔加載完才會(huì)加載指定的外部js文件。因此,不應(yīng)該把那些頁(yè)面正常加載需要依賴的javascript代碼放在這里。而應(yīng)該將JavaScript代碼分成兩組。一組是因頁(yè)面需要而立即加載的javascript代碼,另外一組是在頁(yè)面加載后進(jìn)行操作的javascript代碼(例如添加click事件或其他東西)。這些需等到頁(yè)面加載后再執(zhí)行的JavaScript代碼,應(yīng)放在一個(gè)外部文件,然后再引進(jìn)來(lái)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于JavaScript實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)頁(yè)面
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03解決layui動(dòng)態(tài)添加的元素click等事件觸發(fā)不了的問(wèn)題
今天小編就為大家分享一篇解決layui動(dòng)態(tài)添加的元素click等事件觸發(fā)不了的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09Asp.Net alert彈出提示信息的幾種方法總結(jié)
本篇文章主要是對(duì)Asp.Net alert彈出提示信息的幾種方法進(jìn)行了總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01基于JavaScript實(shí)現(xiàn)留言板功能
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)留言板功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03讓javascript加載速度倍增的方法(解決JS加載速度慢的問(wèn)題)
這篇文章主要介紹了讓javascript加載速度倍增的方法,通過(guò)document.write輸出js解決廣告加載速度慢的問(wèn)題,需要的朋友可以參考下2014-12-12JavaScript數(shù)據(jù)結(jié)構(gòu)鏈表知識(shí)詳解
存儲(chǔ)有序的元素集合,但不同于數(shù)組,鏈表中的元素在內(nèi)存中不是連續(xù)放置的。每個(gè)元素由一個(gè)存儲(chǔ)元素本身的節(jié)點(diǎn)和一個(gè)指向下一個(gè)元素的引用(也稱指針或鏈接)組成。下面通過(guò)本文給大家詳細(xì)介紹下,需要的朋友參考下2016-11-11JavaScript監(jiān)控埋點(diǎn)的實(shí)現(xiàn)與詳細(xì)用法
埋點(diǎn)(Event Tracking)是用戶行為監(jiān)控的一種技術(shù)手段,通常用于收集用戶在網(wǎng)站或應(yīng)用中的操作數(shù)據(jù),例如點(diǎn)擊、頁(yè)面瀏覽、滾動(dòng)等,本文給大家介紹了JavaScript監(jiān)控埋點(diǎn)的實(shí)現(xiàn)與詳細(xì)用法,需要的朋友可以參考下2024-10-10