朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:程序開發(fā)培訓(xùn)班 > 前端開發(fā)培訓(xùn)班 > Web*端開發(fā)性能優(yōu)化技巧

Web*端開發(fā)性能優(yōu)化技巧

Web*端開發(fā)性能優(yōu)化技巧

授課機(jī)構(gòu): 南通青鳥IT教育

課程價(jià)格: 請(qǐng)咨詢客服

開班時(shí)間:隨到隨學(xué)

上課地址: 請(qǐng)咨詢客服

優(yōu)惠價(jià)格: 請(qǐng)咨詢客服

咨詢電話:400-850-8622

課程介紹

發(fā)布日期:2017-05-22 13:43

Web前端開發(fā)性能優(yōu)化技巧

根據(jù)網(wǎng)站的分層架構(gòu),可以大致的分為web前端性能優(yōu)化,應(yīng)用服務(wù)器性能優(yōu)化,存儲(chǔ)服務(wù)器性能優(yōu)化三大類。

一般來說,web前端就是應(yīng)用服務(wù)器處理之前的部分,包括瀏覽器渲染、加載,前端視圖模型,圖片視頻資源,CDN服務(wù)等,主要優(yōu)化方法就是優(yōu)化瀏覽器訪問渲染過程,使用反向代理,使用CDN服務(wù)等。

瀏覽器訪問渲染優(yōu)化

減少http請(qǐng)求數(shù)

http協(xié)議是無狀態(tài)的應(yīng)用層協(xié)議,每次http請(qǐng)求都會(huì)建立新的通信鏈路,并且在服務(wù)端,每個(gè)http連接都會(huì)開啟一個(gè)單獨(dú)的線程去處理請(qǐng)求,這都會(huì)產(chǎn)生額外的開銷。

主要手段就是去合并壓縮css,JavaScript,圖片文件,把需要的css,JavaScript,圖片資源進(jìn)行合并減少建立的連接請(qǐng)求數(shù)。

同時(shí)使用http的keep-alive來進(jìn)行連接的復(fù)用,以此來減少建立的http連接數(shù),提高訪問性能。

啟用壓縮

在服務(wù)端進(jìn)行文件的壓縮,減少通信傳輸過程中的數(shù)據(jù)量。

對(duì)于文本文件,壓縮率能夠達(dá)到80%以上,因此在服務(wù)端啟用gzip壓縮是一個(gè)很好的選擇,但啟用壓縮的同時(shí)也會(huì)給服務(wù)器帶來額外的開銷,所以要具體情況具體分析。

css,JavaScript代碼優(yōu)化

css代碼優(yōu)化:

盡量使用外部樣式,并且放在頁面頂部加載,一方面能夠及時(shí)渲染,另一方面能夠避免因某些樣式導(dǎo)致阻塞渲染。

壓縮合并css文件,盡量精簡(jiǎn)文件,減少通信傳輸數(shù)據(jù)量和請(qǐng)求連接數(shù)

JavaScript代碼優(yōu)化:

因?yàn)镴avaScript代碼邊加載邊解析,解析的過程會(huì)阻塞瀏覽器渲染,因此把JavaScript代碼放在頁面底部加載

同樣的壓縮合并JavaScript文件,盡量精簡(jiǎn)文件,減少通信傳輸數(shù)據(jù)量和請(qǐng)求連接數(shù)

寫高性能的JavaScript代碼

使用瀏覽器緩存

一般來說,對(duì)于網(wǎng)站里面不經(jīng)常變化的靜態(tài)資源,更新頻率比較低,因此可以把這些資源緩存在瀏覽器中,能夠很好的改善性能。

通過設(shè)置http頭里的Cache-Control和Expires屬性來設(shè)定瀏覽器緩存時(shí)間。

另外還有Etags和opcode的緩存,根據(jù)具體情況進(jìn)行選擇吧。

CDN加速

CDN的本質(zhì)也屬于緩存,內(nèi)容分發(fā)網(wǎng)絡(luò),把數(shù)據(jù)緩存在里用戶近的地方,使用戶盡快的獲取數(shù)據(jù)。

因?yàn)镃DN都是部署在網(wǎng)絡(luò)運(yùn)營(yíng)商的機(jī)房,這些運(yùn)營(yíng)商又同時(shí)為用戶提供網(wǎng)絡(luò)服務(wù),因此用戶請(qǐng)求的路由會(huì)優(yōu)先到達(dá)CDN服務(wù)器,如果存在請(qǐng)求的資源的話,就直接返回,最短路徑返回響應(yīng),加速用戶訪問速度,同時(shí)還能夠?yàn)橹行臋C(jī)房減輕壓力。

CDN一般用來緩存靜態(tài)資源,css,Script腳本,靜態(tài)頁面,圖片等,這些內(nèi)容修改頻率很低但是訪問請(qǐng)求頻率很高,因此放在CDN上能夠很好的改善訪問速度。

反向代理

傳統(tǒng)的代理服務(wù)器是當(dāng)你請(qǐng)求不到所請(qǐng)求的資源時(shí),由代理服務(wù)器幫你請(qǐng)求,你知道你請(qǐng)求的最終的服務(wù)器是誰,典型的例子就是VPN,通過代理服務(wù)器來請(qǐng)求到墻外的世界。

而反向代理是當(dāng)你請(qǐng)求一個(gè)地址時(shí),你請(qǐng)求的是反向代理服務(wù)器,然后由反向代理服務(wù)器去請(qǐng)求其他服務(wù)器來獲取內(nèi)容,而你不知道最終是從哪一臺(tái)服務(wù)器獲取到的數(shù)據(jù)。

反向代理web服務(wù)器接收http請(qǐng)求,然后進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),獲取到內(nèi)容后返回給你,你只知道是由反向代理服務(wù)器給你的數(shù)據(jù),而不知道數(shù)據(jù)源最終是從哪個(gè)服務(wù)器來的。

反向代理服務(wù)器具有保護(hù)作用,來自互聯(lián)網(wǎng)的請(qǐng)求都需要經(jīng)過反向代理服務(wù)器,相當(dāng)于在web服務(wù)器之間建立起了一道屏障。

除了安全以外,可以在反向代理服務(wù)器上進(jìn)行一些靜態(tài)資源的緩存,以此來提高訪問速度,減輕應(yīng)用服務(wù)器的負(fù)載壓力。

當(dāng)然,有些動(dòng)態(tài)資源也可以緩存在代理服務(wù)器上面,比如說熱門的詞條,帖子,博客等,這些資源的請(qǐng)求量可能非常非常的大,如果每次都走一遍流程的話會(huì)造成很大的壓力,同時(shí),當(dāng)這些動(dòng)態(tài)內(nèi)容發(fā)生改變時(shí),會(huì)通知反向代理服務(wù)器緩存失效,代理服務(wù)器會(huì)重新緩存動(dòng)態(tài)資源。

除此之外,反向代理服務(wù)器還可以用來做負(fù)載均衡,通過負(fù)載均衡來構(gòu)建服務(wù)器集群,以此來提高系統(tǒng)的總體處理能力,進(jìn)而應(yīng)用提高服務(wù)器處理高并發(fā)的能力。

PS:使用ajax也是提高用戶體驗(yàn)很好的方法,不過ajax對(duì)于SEO并不友好,所以需要用到SEO的地方還是要考慮好是否要用ajax。

好了,南通青鳥IT培訓(xùn)關(guān)于web前端優(yōu)化就寫到這里,下次會(huì)繼續(xù)寫應(yīng)用服務(wù)器性能優(yōu)化,存儲(chǔ)服務(wù)器性能優(yōu)化。

更多培訓(xùn)課程,學(xué)習(xí)資訊,課程優(yōu)惠,課程開班,學(xué)校地址等學(xué)校信息,請(qǐng)進(jìn)入 南通青鳥IT教育網(wǎng)站詳細(xì)了解
咨詢電話:400-850-8622

如果本頁不是您要找的課程,您也可以百度查找一下:

相關(guān)課程


還沒有找到合適的課程?趕快告訴課程顧問,讓我們顧問馬上聯(lián)系您! 靠譜 的培訓(xùn)課程,省時(shí)又省力!

微信訪問

#tel_020#