2019-03-14

js的延遲加載方法(js的延遲加載有助于提高頁(yè)面的加載速度)


1.defer屬性

<script src="file.js" defer> </script>

瀏覽器會(huì)并行下載 file.js和其它有 defer 屬性的script,而不會(huì)阻塞頁(yè)面后續(xù)處理怠苔。defer屬性在IE 4.0中就實(shí)現(xiàn)了慨默,超過(guò)10多年了荤崇!Firefox從 3.5 開(kāi)始支持defer屬性 征候。

注:所有的defer腳本保證是按順序依次執(zhí)行的。

2.async屬性

<script src="file.js" async> </script>

async屬性是HTML5新增的肮柜。作用和defer類(lèi)似棍弄,但是它將在下載后盡快執(zhí)行望薄,不能保證腳本會(huì)按順序執(zhí)行。它們將在onload 事件之前完成呼畸。

Firefox3.6痕支、Opera 10.5、IE 9和 最新的Chrome 和 Safari 都支持 async 屬性蛮原∥孕耄可以同時(shí)使用 async 和 defer,這樣IE 4之后的所有IE 都支持異步加載儒陨。

3.動(dòng)態(tài)創(chuàng)建DOM方式 (使用的最多)


PS: 這里插一句addEventListener()?也是郴ㄋ唬考的知識(shí)點(diǎn)之一:

??? addEventListener() 方法用于向指定元素添加事件句柄。

??? 使用 removeEventListener() 方法來(lái)移除 addEventListener() 方法添加的事件句柄蹦漠。

語(yǔ)法:element.addEventListener(event, function, useCapture)

??????? event (必須)字符串椭员,指定事件名。注意: 不要使用 “on” 前綴津辩。 例如拆撼,使用 “click” ,而不是使用 “onclick”容劳。

??????? function (必須)指定要事件觸發(fā)時(shí)執(zhí)行的函數(shù)喘沿。當(dāng)事件對(duì)象會(huì)作為第一個(gè)參數(shù)傳入函數(shù)。 事件對(duì)象的類(lèi)型取決于特定的事件竭贩。例如蚜印, “click” 事件屬于 MouseEvent(鼠標(biāo)事件) 對(duì)象。

??????? useCapture (可選)布爾值留量,指定事件是否在捕獲或冒泡階段執(zhí)行窄赋∮炊【true:事件句柄在捕獲階段執(zhí)行; false:默認(rèn)忆绰,事件句柄在冒泡階段執(zhí)行】


效果如圖:


4.使用Jquery的getScript()方法


從源碼可以看出浩峡,這個(gè)方法最后還是調(diào)用了jQuery.ajax()來(lái)請(qǐng)求了js文件的。

5.使用setTimeout延遲方法的加載時(shí)間

延遲加載js代碼错敢,給網(wǎng)頁(yè)加載留出時(shí)間


6.讓js最后加載

例如引入外部js腳本文件時(shí)翰灾,如果放入html的head中,則頁(yè)面加載前該js腳本就會(huì)被加載入頁(yè)面,而放入body中稚茅,則會(huì)按照頁(yè)面從上倒下的加載順序來(lái)運(yùn)行javascript的代碼~~~ 所以我們可以把js外部引入的文件放到頁(yè)面底部纸淮,來(lái)讓js最后引入,從而加快頁(yè)面加載速度亚享。

上述方法5,6也會(huì)偶爾讓你收到Google頁(yè)面速度測(cè)試工具的“延遲加載javascript”警告咽块。所以這里的解決方案將是來(lái)自Google幫助頁(yè)面的推薦方案。


這段代碼意思是等到整個(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è)面正常加載需要依賴(lài)的javascript代碼放在這里皆撩。而應(yīng)該將JavaScript代碼分成兩組。一組是因頁(yè)面需要而立即加載的javascript代碼哲银,另外一組是在頁(yè)面加載后進(jìn)行操作的javascript代碼(例如添加click事件或其他東西)扛吞。這些需等到頁(yè)面加載后再執(zhí)行的JavaScript代碼,應(yīng)放在一個(gè)外部文件荆责,然后再引進(jìn)來(lái)滥比。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市做院,隨后出現(xiàn)的幾起案子盲泛,更是在濱河造成了極大的恐慌,老刑警劉巖键耕,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寺滚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡屈雄,警方通過(guò)查閱死者的電腦和手機(jī)村视,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酒奶,“玉大人蚁孔,你說(shuō)我怎么就攤上這事奶赔。” “怎么了杠氢?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵站刑,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鼻百,道長(zhǎng)笛钝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任愕宋,我火速辦了婚禮玻靡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘中贝。我一直安慰自己囤捻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布邻寿。 她就那樣靜靜地躺著蝎土,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绣否。 梳的紋絲不亂的頭發(fā)上誊涯,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音蒜撮,去河邊找鬼暴构。 笑死,一個(gè)胖子當(dāng)著我的面吹牛段磨,可吹牛的內(nèi)容都是我干的取逾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼苹支,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砾隅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起债蜜,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晴埂,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后寻定,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體儒洛,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年特姐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晶丘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡唐含,死狀恐怖浅浮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捷枯,我是刑警寧澤滚秩,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站淮捆,受9級(jí)特大地震影響郁油,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜攀痊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一桐腌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苟径,春花似錦案站、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至遭殉,卻和暖如春石挂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背险污。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工痹愚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛔糯。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓里伯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渤闷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疾瓮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容