一般寫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,但是我們沒有辦法確定客戶採用什麼樣的資料庫,此時我們需要 需要為當前專案開發不同的資料庫的版...