国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
HTTP/2 對(duì) Web 性能的影響(下)
一.前言

我們?cè)?HTTP/2 對(duì) Web 性能的影響(上)已經(jīng)和大家分享了一些關(guān)于 Http2 的二項(xiàng)制幀、多用復(fù)路以及 APM 工具等,本文作為姊妹篇,主要從 http2 對(duì) Web 性能的影響、http2 使用的利弊以及一些正在進(jìn)行中的相關(guān)工作等方面與大家進(jìn)行分享。

二.Web 性能影響:與內(nèi)聯(lián)、級(jí)聯(lián)及圖像精靈說(shuō)再見(jiàn)?

HTTP/2 多路復(fù)用對(duì)前端 Web 開(kāi)發(fā)人員造成了深遠(yuǎn)的影響。長(zhǎng)久以來(lái),人們用盡方法,試圖通過(guò)捆綁相關(guān)資產(chǎn)來(lái)削減連接的數(shù)量,而現(xiàn)在這一切都不需要了。人們?cè)?jīng)嘗試過(guò)的方法包括:

  • JavaScript 與 CSS 文件級(jí)聯(lián):將多個(gè)小文件合成一個(gè)大文件,從而降低總體請(qǐng)求數(shù)量。
  • 圖像精靈:將多個(gè)小圖像合成一張大圖像。
  • 域名分片:在多個(gè)域之間發(fā)送靜態(tài)資產(chǎn)請(qǐng)求,從而增加瀏覽器所能允許的總體開(kāi)放 TCP 連接數(shù)量。
  • 內(nèi)聯(lián)資產(chǎn):將資產(chǎn)同 HTML 文檔源綁定,包括 base-64 編碼圖片,以及直接寫(xiě)入 script 標(biāo)簽的 JavaScript 代碼。

因?yàn)椴恍枰俳壎ㄙY產(chǎn),我們就有了更多機(jī)會(huì)將 Web 應(yīng)用程序中的小片段加以緩存。舉個(gè)例子可以幫我們更好的理解這一點(diǎn):

一個(gè)級(jí)聯(lián)且指紋驗(yàn)證型 CSS 文件被解綁為四個(gè)較小的指紋驗(yàn)證文件。

常見(jiàn)的級(jí)聯(lián)模式是將一個(gè)應(yīng)用程序內(nèi)不同頁(yè)面的樣式表文件進(jìn)行綁定,形成單一的 CSS 文件,以減少資產(chǎn)請(qǐng)求的數(shù)量。這個(gè)大文件隨后會(huì)通過(guò)文件名內(nèi)的 MD5 哈希值進(jìn)行指紋校驗(yàn),確保其能夠被瀏覽器主動(dòng)緩存。遺憾的是,這樣的解決方案意味著,當(dāng)站點(diǎn)的可視化布局中出現(xiàn)了任何一點(diǎn)小的改變,如標(biāo)題字體的改變,都需要重新下載整個(gè)級(jí)聯(lián)文件。

當(dāng)對(duì)小型資產(chǎn)文件進(jìn)行指紋校驗(yàn)時(shí),相當(dāng)一部分的 JavaScript 與 CSS 組件都不會(huì)頻繁產(chǎn)生變動(dòng),因此可以被瀏覽器緩存 –也就是說(shuō),任何一個(gè)單一功能的小型重構(gòu),不會(huì)再導(dǎo)致大量的 JavaScript 應(yīng)用程序代碼或者 CSS 失效。

最后,級(jí)聯(lián)機(jī)制的消失能夠降低前端構(gòu)建基礎(chǔ)的復(fù)雜性。與以往通過(guò)一系列預(yù)置步驟來(lái)級(jí)聯(lián)資產(chǎn)不同,現(xiàn)在它們作為小型文件,可以直接被放入 HTML 文檔中。

三.實(shí)際使用 HTTP/2 的潛在弊端

僅僅針對(duì)支持 HTTP/2 客戶端而做出的各類優(yōu)化,意味著那些不支持 HTTP/2 的瀏覽器可能因此陷入不利境地。那些“有年頭”的瀏覽器們?nèi)匀粌A向于綁定資產(chǎn),以此降低連接數(shù)量。截至 2016 年 2 月,caniuse.com 網(wǎng)站報(bào)道稱,全球?yàn)g覽器中能夠支持 HTTP/2 的占比 71%。與之前瀏覽器們決定放棄支持 IE 8.0 時(shí)一樣,支持 HTTP/2 或采取某種混合作業(yè)的方式——這樣的決定只能根據(jù)各個(gè)網(wǎng)站自身的相關(guān)數(shù)據(jù)來(lái)做出。

但是我們相信大規(guī)模支持肯定是不可避免的,就像一開(kāi)始只有 Chrome 瀏覽器支持 window.performance 接口,方便一些 Web 工具進(jìn)行數(shù)據(jù)的采集,像上面說(shuō)過(guò)的 Browser Insight ,我曾經(jīng)和他們的技術(shù)支持聊過(guò),就是靠這種方式來(lái)實(shí)時(shí)的采集用戶對(duì)網(wǎng)站的訪問(wèn)信息等。之后,大勢(shì)所趨,各個(gè)瀏覽器廠商都紛紛開(kāi)放了相關(guān)接口

正如可汗學(xué)院的博文所述,他們?cè)治銎渚W(wǎng)站上的 HTTP/2 流量,事實(shí)上,拆分大量資產(chǎn)會(huì)增加所傳輸字節(jié)的總量。而使用zlib壓縮單一大型文件,比壓縮多個(gè)小型文件要更有效率。對(duì)于擁有成百上千解綁資產(chǎn)的 HTTP/2 站點(diǎn)來(lái)說(shuō),這種效應(yīng)更為顯著。

在瀏覽器中使用 HTTP/2 還要求我們通過(guò) TLS 進(jìn)行資產(chǎn)傳遞。對(duì)于菜鳥(niǎo)們來(lái)說(shuō),設(shè)置 TLS 證書(shū)就是個(gè)煩人的活兒。幸運(yùn)的是,諸如 Let’s Encrypt 的開(kāi)源項(xiàng)目正努力讓證書(shū)注冊(cè)工作變得更加便捷。

四.仍在進(jìn)行中的工作

大部分用戶并不在意你的站點(diǎn)用了啥協(xié)議——他們只想要它速度快,運(yùn)行如人預(yù)期。雖然 HTTP/2 已經(jīng)獲得正式批準(zhǔn)快一年了,開(kāi)發(fā)人員還在學(xué)習(xí)如何利用它來(lái)建立更快速網(wǎng)站的最優(yōu)實(shí)踐。換用 HTTP/2 的好處更多取決于具體站點(diǎn)的架構(gòu)情況以及使用現(xiàn)代瀏覽器的用戶比率。再有就是,調(diào)試新協(xié)議很有挑戰(zhàn)性,更易用的開(kāi)發(fā)工具還在研制中。

雖然有這些挑戰(zhàn),HTTP/2 的采納度仍在增加。根據(jù)研究人員掃描流行網(wǎng)站屬性的結(jié)果,排名前列的站點(diǎn)中使用 HTTP/2 的一直在增加,特別是 CloudFlareWordPress 在 2015 年宣布提供支持之后。在考慮轉(zhuǎn)換到新協(xié)議時(shí),很重要的一點(diǎn)是利用 Browser insightNewRelic 之類的 APM 工具,仔細(xì)測(cè)量資源和頁(yè)面在不同環(huán)境下的加載時(shí)間。

如下圖所示,可以看到每一次慢加載的詳細(xì)情況,非常方便。

供應(yīng)商和專業(yè)網(wǎng)站人員都熟悉這一轉(zhuǎn)換背后的含義,從真實(shí)用戶數(shù)據(jù)中做出判斷才是關(guān)鍵的。在網(wǎng)站臃腫危機(jī)的當(dāng)下,無(wú)論何種協(xié)議,都應(yīng)該以削減資源數(shù)量為目標(biāo)。

在此 HTTP/2 系列的第二部分中,我們會(huì)聚焦于如何在服務(wù)器上實(shí)現(xiàn) HTTP/2 和調(diào)試真實(shí)網(wǎng)絡(luò)通信的具體實(shí)現(xiàn)細(xì)節(jié)。

本文作者為 Clay Smith,由 OneAPM 產(chǎn)品運(yùn)營(yíng)進(jìn)行翻譯編輯

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于 Spartacus 的 Angular Storefront 性能優(yōu)化建議
優(yōu)化網(wǎng)站性能提高網(wǎng)站訪問(wèn)速度
yahoo優(yōu)化插件-- YSlow
非常全面的實(shí)用JavaScript開(kāi)發(fā)工具列表
Yahoo!團(tuán)隊(duì)實(shí)踐分享:網(wǎng)站性能優(yōu)化的34條黃金守則(三)—JavaScript和CSS
網(wǎng)站內(nèi)部?jī)?yōu)化:JS腳本代碼和CSS外置
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服