您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么提升Web性能”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
為什么web性能如此重要?
真的非常重要!
響應(yīng)更快的網(wǎng)站會(huì)帶給用戶更好的體驗(yàn),理論上講,好的體驗(yàn)等于好的用戶滿意度。更快,也意味著用戶在放棄之前,有希望更快的訪問到你的網(wǎng)站。放棄的原因有很多:頁面加載時(shí)間太長(zhǎng),用戶失去了興趣,瀏覽器崩潰等等。提高性能可以降低放棄率,會(huì)給網(wǎng)站了帶來顯著的效益。
運(yùn)行時(shí)的性能是指web應(yīng)用程序運(yùn)行時(shí)對(duì)于用戶輸入的響應(yīng)速度,比如點(diǎn)擊刪除圖片等。
Web性能影響因素
運(yùn)行時(shí)的性能受很多因素影響:
從完成特定功能所采用的算法效率到優(yōu)化方法;
從解釋器和瀏覽器渲染引擎的優(yōu)化或不足到有效內(nèi)存管理和CPU使用率;
再到設(shè)計(jì)時(shí)間同步和異步操作之間的選擇,都會(huì)對(duì)性能產(chǎn)生影響。
運(yùn)行時(shí)的性能是一個(gè)比較主觀的感覺。今天就從三個(gè)角度分享一下小編的性能優(yōu)化小技巧。
角度一:當(dāng)我們?cè)跒g覽器的地址欄輸入一個(gè)URL,就開啟了一個(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性能的主要還是頁面本身。作為開發(fā)人員,性能優(yōu)化可以控制的部分就是頁面,包括頁面大小、頁面結(jié)構(gòu)、JS、CSS等等。
針對(duì)以上3點(diǎn)頁面加載過程所涉及到的因素,下面做簡(jiǎn)單討論和優(yōu)化的辦法介紹~
性能優(yōu)化小技巧
1. 減少HTTP請(qǐng)求數(shù):
1)資源大小很重要,不僅僅關(guān)系到下載時(shí)間,還因?yàn)镮Pv4和IPv6協(xié)議規(guī)定一個(gè)IP包的***值為65535字節(jié)。一個(gè)IP包是一次請(qǐng)求,于是可以得到一個(gè)等式:
根據(jù)這個(gè)公式,我們可以控制資源盡可能小??梢圆扇∈褂胓ulp等自動(dòng)化構(gòu)建工具進(jìn)行自動(dòng)合并JS文件、壓縮文件和圖片等手段。
2) 避免重定向:重定向說明需要客戶端采取進(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ù)庫緩存、服務(wù)端緩存(反向代理和CDN緩存)、瀏覽器緩存。
2. 圖片懶加載
頁面圖片很多的,可以使用懶加載。只加載***屏的圖片,當(dāng)用戶滾動(dòng)訪問后面的內(nèi)容時(shí)再加載相應(yīng)圖片。方法是先用一張極小的占位圖代替圖片,占位圖只下載一次,將原本圖片的src存儲(chǔ)在另一個(gè)屬性中,判斷當(dāng)圖片快進(jìn)入可視區(qū)域就將路徑賦值給src并下載圖片進(jìn)行展示。下面是簡(jiǎn)單的例子:
3. 代碼優(yōu)化
1)頁面結(jié)構(gòu):CSS放在HTML內(nèi)容上部,JavaScript放在HTML內(nèi)容下部??梢允褂胮reload提前解析資源的DNS。由于瀏覽器是自上而下讀取內(nèi)容的,因此放置資源的位置會(huì)影響網(wǎng)站的訪問速度。比如,如果將script標(biāo)簽放在HTML內(nèi)容的前邊,瀏覽器就會(huì)先調(diào)用JavaScript解釋器對(duì)JS進(jìn)行解析,完成之后才會(huì)渲染其余的HTML內(nèi)容,對(duì)用戶來說,能看到的是HTML的內(nèi)容,所以1) 這么做會(huì)導(dǎo)致頁面可用性的延遲。另外,CSS是對(duì)頁面節(jié)點(diǎn)進(jìn)行修飾的,如果CSSOM未構(gòu)建之前就進(jìn)行了布局,等到CSSOM構(gòu)建出來,如果CSS修改了節(jié)點(diǎn)的布局,就會(huì)發(fā)生重排,需要重新計(jì)算布局并繪制。
2) JavaScript優(yōu)化:比如減少對(duì)DOM的操作,減少重排和重繪,減少作用域鏈查找,慎用eval函數(shù)等等。JS代碼和(下面的)CSS的優(yōu)化主要要求前端開發(fā)人員對(duì)頁面渲染原理有清晰的了解、對(duì)基礎(chǔ)知識(shí)的掌握和良好的編程習(xí)慣。
3) CSS優(yōu)化:比如減少使用通配符‘*’,提取公用樣式增強(qiáng)可復(fù)用性,選擇器準(zhǔn)確可減少匹配時(shí)間,適度使用內(nèi)聯(lián)樣式。
“怎么提升Web性能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。