preload 讓載入和解析解耦

2021-09-24 06:47:52 字數 1672 閱讀 6401

一般寫html頁面,script寫在body結束標籤前,這樣只有當遇到script標籤的時候,才會載入執行,費載入時間不科學吖!儘管大多數基於標記語言的資源能被瀏覽器的預載入器(preloader)提前載入,但還是不盡如人意!

preload大白話的意思是,」嗨,瀏覽器!這個資源在這個頁面後面會用到,現在先載入它吧。「

好處遠不止上面的:

先說下link標籤的使用。

rel="preload"

href="static.js"

as="script"

onload="preloadfinished()">

rel="preload"

href="static.css"

as="style"

onload="preloadfinished()">

rel="preload"

href="font.woff2"

as="font"

type="font/woff2"

crossorigin>

複製**

其實動態載入就是插入帶preload的link,執行的時候,動態的建立script。

function

loadscript(url)

function

execscript(url)

// 載入這個js,但不執行

loadscript("myscript.js")

// 某個時機執行

settimeout(function(),1000)

複製**

注意吖,不是說載入了就是執行!!!!!

也就是preload只管載入!!!

換句話說,你買東西,preload相當於快遞到你家門口了,但是你只有拆了包裹才算是使用!!!

**的體現就是,以前的還是要寫在相應的位置的!

然後在head頭里加上,preload是錦上添花的!

我覺得吧,先去知道瀏覽器載入機制之後,才能更加體會到preload的美!

這邊簡單的總結下,瀏覽器的載入機制:

prefetch相當於說,「嗨,瀏覽器,下個頁面可能要用到這個資源,你閒著無聊就幫我載入下唄~」。 用法跟preload差不離,link的rel="prefetch"

和preload區別:

先說網域名稱只是伺服器ip位址的美化,也就是雖然請求網域名稱,但實際是先請求dns伺服器,dns伺服器返回網域名稱所代表的真正的伺服器ip,瀏覽器再向伺服器傳送請求。

dns-prefetch就是讓瀏覽器先將網域名稱發給dns伺服器,讓瀏覽器知道,網域名稱所指的真正的伺服器,之後在傳送請求的時候,就直接發給伺服器了。

簡單的一行就能讓支援的瀏覽器提前解析dns。也就是說在瀏覽器請求資源時,dns查詢就已經準備好了。

使用方式

使用場景:

直接引用這個回答 ,當瀏覽器碰到 script 指令碼的時候:

preload的好處

w3c的preload,一眼可以看到支援

瀏覽器載入機制

prefetch和preload

一籮筐的預取技術

4 2 1 載入和解析資料

4.2.1 載入和解析資料 作為第一步,我們將實現乙個函式 convertdatarow,它從這個 csv 檔案中取一行作為字串,從這一行中返回兩個元件到乙個元組中。實現這個函式後,立刻測試它,通過給它乙個示例輸入 字串 testing reading,1234 應該能正確解析。在清單 4.2 中,...

設計模式 耦合和解耦的概念解析

耦合就是兩個層之間有依賴關係?同乙個層也可能有依賴關係 看見有解耦的方法就是在相互依賴的兩層之間加一層,可是新加的一層不是又和原來的兩層有耦合關係了嗎?解耦的方式是讓設計依賴於抽象,而不是依賴於實現,看看設計模式的原則 到底什麼是耦合?a明確地使用b資源 public class aclass b現...

工廠模式解耦 dom4j解析xml

我們當前的開發末實現,service層對dao層有依賴,例如在userservcieimp 現了 private productdao dao new productdaoimpl 假如我們做了乙個產品oa,但是我們沒有辦法確定客戶採用什麼樣的資料庫,此時我們需要 需要為當前專案開發不同的資料庫的版...