性能優(yōu)化是一個(gè)復(fù)雜的話題,涉及的技能很多,如何通過優(yōu)化網(wǎng)頁(yè)性能提高用戶體驗(yàn)?今天給大家介紹一些常見的方法。想要對(duì)網(wǎng)站性能優(yōu)化有更深入的了解和認(rèn)識(shí),可以參加Web前端培訓(xùn),通過概念講解加實(shí)戰(zhàn)項(xiàng)目演練的方式,幫你快速掌握當(dāng)下最熱門的優(yōu)化技巧。
1.盡可能減少要傳輸?shù)臄?shù)據(jù)量
首先,刪除所有未使用的部分,例如JavaScript中不可訪問的函數(shù)、帶有永遠(yuǎn)不匹配任何元素的選擇器的樣式,以及永遠(yuǎn)隱藏在CSS中的HTML標(biāo)記。其次,刪除所有重復(fù)項(xiàng)。然后,我建議設(shè)置一個(gè)自動(dòng)縮小過程。例如,它應(yīng)該刪除后端服務(wù)的所有注釋(但不是源代碼)以及不包含其他信息的每個(gè)字符(例如JS中的空白字符)。完成后,我們剩下的可以是文本。這意味著我們可以安全地應(yīng)用壓縮算法,比如GZIP(大多數(shù)瀏覽器都能理解)。最后,還有緩存。當(dāng)瀏覽器第一次呈現(xiàn)頁(yè)面時(shí),這不會(huì)有什么幫助,但會(huì)在以后的訪問中節(jié)省很多。但關(guān)鍵是要記住兩件事:
如果使用CDN,請(qǐng)確保支持緩存并在其中正確設(shè)置。
與其等待資源的過期日期,您可能希望有一種方法可以從您的角度更早地更新它。將文件的“指紋”嵌入到URL中,使本地緩存失效。
當(dāng)然,應(yīng)該為每個(gè)資源定義緩存策略。有些可能很少改變,或者根本不會(huì)改變。其他國(guó)家的變化更快。其中一些包含敏感信息,另一些可能被視為公開信息。使用“private”指令防止CDN緩存私有數(shù)據(jù)。也可以優(yōu)化web圖像,盡管圖像請(qǐng)求不會(huì)阻止解析或呈現(xiàn)。在Web前端培訓(xùn)中,你可以全面學(xué)習(xí)到網(wǎng)站性能優(yōu)化相關(guān)技術(shù),了解其優(yōu)化模式和最佳實(shí)踐,最終掌握使用優(yōu)化網(wǎng)站性能的能力。
2.減少關(guān)鍵資源的總數(shù)
“關(guān)鍵”僅指網(wǎng)頁(yè)正確呈現(xiàn)所需的資源。因此,我們可以跳過流程中未直接涉及的所有樣式,還有所有的腳本。
樣式表
為了告訴瀏覽器不需要特定的CSS文件,我們應(yīng)該為引用樣式表的所有鏈接設(shè)置媒體屬性。使用這種方法,瀏覽器將只視需要處理與當(dāng)前媒體(設(shè)備類型、屏幕大?。┢ヅ涞馁Y源,同時(shí)降低所有其他樣式表的優(yōu)先級(jí)(它們將被處理,但不會(huì)作為關(guān)鍵渲染路徑的一部分)。例如,如果向引用打印頁(yè)面樣式的樣式標(biāo)記添加media=“print”屬性,則當(dāng)介質(zhì)未打印時(shí)(即在瀏覽器中顯示頁(yè)面時(shí)),這些樣式不會(huì)干擾關(guān)鍵呈現(xiàn)路徑。
為了進(jìn)一步改進(jìn)該過程,還可以將一些樣式內(nèi)聯(lián)。這為我們節(jié)省了至少一次到服務(wù)器的往返,否則獲取樣式表就需要這樣做。
腳本
如上所述,腳本是解析器阻塞的,因?yàn)樗鼈兛梢愿淖僁OM和CSSOM。因此,不改變它們的腳本不應(yīng)該是塊解析,從而節(jié)省我們的時(shí)間。為了實(shí)現(xiàn)這一點(diǎn),所有腳本標(biāo)記都必須標(biāo)記為async或defer屬性。
標(biāo)記為async的腳本不會(huì)阻止DOM構(gòu)造或CSSOM,因?yàn)樗鼈兛梢栽跇?gòu)建CSSOM之前執(zhí)行。但是請(qǐng)記住,內(nèi)聯(lián)腳本無(wú)論如何都會(huì)阻止CSSOM,除非您將它們放在CSS之上。相比之下,標(biāo)記為“延遲”的腳本將在頁(yè)面加載結(jié)束時(shí)進(jìn)行評(píng)估。因此,它們不應(yīng)影響文檔(否則將觸發(fā)重新呈現(xiàn))。所以如果你想學(xué)習(xí)網(wǎng)站性能優(yōu)化更多方法,不妨報(bào)名參加Web前端培訓(xùn),學(xué)習(xí)性能優(yōu)化對(duì)技能提升和職業(yè)發(fā)展都有很大的幫助。
換句話說(shuō),使用defer,腳本直到頁(yè)面加載事件觸發(fā)后才執(zhí)行,而async允許腳本在解析文檔時(shí)在后臺(tái)運(yùn)行。