Web性能再提升一檔的技巧

2021-02-15    分類: 網(wǎng)站建設(shè)

為什么web性能如此重要?

真的非常重要!

響應(yīng)更快的網(wǎng)站會(huì)帶給用戶更好的體驗(yàn),理論上講,好的體驗(yàn)等于好的用戶滿意度。更快,也意味著用戶在放棄之前,有希望更快的訪問(wèn)到你的網(wǎng)站。放棄的原因有很多:頁(yè)面加載時(shí)間太長(zhǎng),用戶失去了興趣,瀏覽器崩潰等等。提高性能可以降低放棄率,會(huì)給網(wǎng)站了帶來(lái)顯著的效益。

運(yùn)行時(shí)的性能受很多因素影響:

  • 從完成特定功能所采用的算法效率到優(yōu)化方法;
  • 從解釋器和瀏覽器渲染引擎的優(yōu)化或不足到有效內(nèi)存管理和CPU使用率;
  • 再到設(shè)計(jì)時(shí)間同步和異步操作之間的選擇,都會(huì)對(duì)性能產(chǎn)生影響。

運(yùn)行時(shí)的性能是一個(gè)比較主觀的感覺(jué)。今天就從三個(gè)角度分享一下小編的性能優(yōu)化小技巧。

  • 角度一:當(dāng)我們?cè)跒g覽器的地址欄輸入一個(gè)URL,就開(kāi)啟了一個(gè)新的網(wǎng)絡(luò)線程,DNS解析、TCP連接和HTTP請(qǐng)求和響應(yīng),不可避免地依賴網(wǎng)絡(luò)環(huán)境、受到網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)不穩(wěn)定等因素影響。我們能做的只有盡可能減少網(wǎng)絡(luò)請(qǐng)求,以減少網(wǎng)絡(luò)線程產(chǎn)生的網(wǎng)絡(luò)消耗。
  • 角度二:瀏覽器也有部分原因,主流瀏覽器有IE、Chrome、Safari、Firefox、Opera等,不同的瀏覽器的JS引擎性能不同,帶給用戶的體驗(yàn)也不同,比如IE8及以下的內(nèi)核表現(xiàn)不好是眾所周知的。
  • 角度三:除去網(wǎng)絡(luò)、瀏覽器等外圍因素,影響web性能的主要還是頁(yè)面本身。作為開(kāi)發(fā)人員,性能優(yōu)化可以控制的部分就是頁(yè)面,包括頁(yè)面大小、頁(yè)面結(jié)構(gòu)、JS、CSS等等。

針對(duì)以上3點(diǎn)頁(yè)面加載過(guò)程所涉及到的因素,下面做簡(jiǎn)單討論和優(yōu)化的辦法介紹~

性能優(yōu)化小技巧

根據(jù)這個(gè)公式,我們可以控制資源盡可能小。可以采取使用gulp等自動(dòng)化構(gòu)建工具進(jìn)行自動(dòng)合并JS文件、壓縮文件和圖片等手段。

2) 避免重定向:重定向說(shuō)明需要客戶端采取進(jìn)一步操作才能完成請(qǐng)求,請(qǐng)求時(shí)間就會(huì)延長(zhǎng)。所以輸入U(xiǎn)RL時(shí)應(yīng)使用最完整的、最直接的地址,比如輸入www.baidu.com而不是baidu.com。

3) 使用緩存機(jī)制:主要有數(shù)據(jù)庫(kù)緩存、服務(wù)端緩存(反向代理和CDN緩存)、瀏覽器緩存。

2.  圖片懶加載

頁(yè)面圖片很多的,可以使用懶加載。只加載第一屏的圖片,當(dāng)用戶滾動(dòng)訪問(wèn)后面的內(nèi)容時(shí)再加載相應(yīng)圖片。方法是先用一張極小的占位圖代替圖片,占位圖只下載一次,將原本圖片的src存儲(chǔ)在另一個(gè)屬性中,判斷當(dāng)圖片快進(jìn)入可視區(qū)域就將路徑賦值給src并下載圖片進(jìn)行展示。下面是簡(jiǎn)單的例子:

注意這 3 個(gè)小細(xì)節(jié), Web 性能再提升一檔!

3. 代碼優(yōu)化

1)頁(yè)面結(jié)構(gòu):CSS放在HTML內(nèi)容上部,JavaScript放在HTML內(nèi)容下部??梢允褂胮reload提前解析資源的DNS。由于瀏覽器是自上而下讀取內(nèi)容的,因此放置資源的位置會(huì)影響網(wǎng)站的訪問(wèn)速度。比如,如果將script標(biāo)簽放在HTML內(nèi)容的前邊,瀏覽器就會(huì)先調(diào)用JavaScript解釋器對(duì)JS進(jìn)行解析,完成之后才會(huì)渲染其余的HTML內(nèi)容,對(duì)用戶來(lái)說(shuō),能看到的是HTML的內(nèi)容,所以1) 這么做會(huì)導(dǎo)致頁(yè)面可用性的延遲。另外,CSS是對(duì)頁(yè)面節(jié)點(diǎn)進(jìn)行修飾的,如果CSSOM未構(gòu)建之前就進(jìn)行了布局,等到CSSOM構(gòu)建出來(lái),如果CSS修改了節(jié)點(diǎn)的布局,就會(huì)發(fā)生重排,需要重新計(jì)算布局并繪制。

2) JavaScript優(yōu)化:比如減少對(duì)DOM的操作,減少重排和重繪,減少作用域鏈查找,慎用eval函數(shù)等等。JS代碼和(下面的)CSS的優(yōu)化主要要求前端開(kāi)發(fā)人員對(duì)頁(yè)面渲染原理有清晰的了解、對(duì)基礎(chǔ)知識(shí)的掌握和良好的編程習(xí)慣。

3) CSS優(yōu)化:比如減少使用通配符‘*’,提取公用樣式增強(qiáng)可復(fù)用性,選擇器準(zhǔn)確可減少匹配時(shí)間,適度使用內(nèi)聯(lián)樣式。

新聞名稱:Web性能再提升一檔的技巧
網(wǎng)址分享:http://bm7419.com/news38/101038.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、虛擬主機(jī)ChatGPT、自適應(yīng)網(wǎng)站、動(dòng)態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站