6. 使用CDN加速(內(nèi)容分發(fā)網(wǎng)絡(luò))
基本原理:
CDN的全稱是Content Delivery Network拌消,即內(nèi)容分發(fā)網(wǎng)絡(luò)。
"其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母焯闵摇⒏€(wěn)定嫉父。通過在網(wǎng)絡(luò)各處放置節(jié)點(diǎn)服務(wù)器所構(gòu)成的在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)之上的一層智能虛擬網(wǎng)絡(luò),CDN系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和各節(jié)點(diǎn)的連接福青、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo)向離用戶最近的服務(wù)節(jié)點(diǎn)上摄狱。" - 百度百科秋度。
不足之處:
實(shí)時(shí)性不太好是CDN的致命缺陷参淹。隨著對(duì)CDN需求的逐漸升溫,這一缺陷將得到改進(jìn)围小,使來(lái)自于遠(yuǎn)程服務(wù)器的網(wǎng)絡(luò)內(nèi)容網(wǎng)頁(yè)與復(fù)本服務(wù)器或緩存器中的網(wǎng)頁(yè)保持同步宪迟。解決方法是在網(wǎng)絡(luò)內(nèi)容發(fā)生變化時(shí)將新的網(wǎng)絡(luò)內(nèi)容從服務(wù)器端直接傳送到緩存器刊愚,或者當(dāng)對(duì)網(wǎng)絡(luò)內(nèi)容的訪問增加時(shí)將數(shù)據(jù)源服務(wù)器的網(wǎng)絡(luò)內(nèi)容盡可能實(shí)時(shí)地復(fù)制到緩存服務(wù)器。
7. 將CSS和JS放到外部文件中引用踩验,CSS放頭鸥诽,JS放尾
JavaScript是瀏覽器中的霸主,為什么這么說箕憾,因?yàn)樵跒g覽器在執(zhí)行JavaScript代碼時(shí)牡借,不能同時(shí)做其它事情,即<script>每次出現(xiàn)都會(huì)讓頁(yè)面等待腳本的解析和執(zhí)行(不論JavaScript是內(nèi)嵌的還是外鏈的)袭异,JavaScript代碼執(zhí)行完成后钠龙,才繼續(xù)渲染頁(yè)面。這個(gè)也就是JavaScript的阻塞特性御铃。每次出現(xiàn)都會(huì)讓頁(yè)面等待腳本的解析和執(zhí)行(不論JavaScript是內(nèi)嵌的還是外鏈的)碴里,JavaScript代碼執(zhí)行完成后,才繼續(xù)渲染頁(yè)面上真。這個(gè)也就是JavaScript的阻塞特性咬腋。
因?yàn)檫@個(gè)阻塞的特點(diǎn),建議把JavaScript代碼放到</body>標(biāo)簽以前睡互,這樣既能有效的防止JavaScript的阻塞根竿,又能使得頁(yè)面的HTML結(jié)構(gòu)能更快的釋放陵像。
8. 精簡(jiǎn)CSS和JS文件
基本原理:
有一條非常重要的準(zhǔn)則一直沒有提到,就是CSS和JavaScript的壓縮寇壳,直接減少下載的文件體積醒颖。我個(gè)人經(jīng)常使用的方式是使用 YUI Compressor,它的特點(diǎn)是:移除注釋壳炎;移除額外的空格泞歉;細(xì)微優(yōu)化;標(biāo)識(shí)符替換匿辩。
9. 壓縮圖片和使用圖片Sprite技術(shù)
基本原理:
注:其實(shí)壓縮圖片和圖片精靈是兩個(gè)方面的技術(shù)腰耙,可是既然都是關(guān)于圖片的優(yōu)化還是放到一塊吧。
現(xiàn)在由于工作的細(xì)分撒汉,專業(yè)的前端工程師已經(jīng)少有機(jī)會(huì)去切圖了沟优,可是關(guān)于圖片壓縮還是得略微了解,一般圖片壓縮的方式有:
1.縮小圖片分辨率睬辐;
2.改變圖片格式挠阁;
3.降低圖片保存質(zhì)量。
關(guān)于圖片精靈(Sprite)技術(shù)就和我們工作直接相關(guān)溯饵,不管是在CSS中的圖片還是在HTML結(jié)構(gòu)中的圖片都會(huì)產(chǎn)生HTTP請(qǐng)求侵俗,前端優(yōu)化的第一條就是減少請(qǐng)求數(shù),最直接有效的方法是使用圖片精靈(CSS Sprite)丰刊。圖片精靈就是把許多圖片放到一張大圖片里面隘谣,通過CSS來(lái)顯示圖片的一部分。
10. 注意控制Cookie大小和污染
基本原理和使用方法:
有關(guān)Cookie的基礎(chǔ)和高級(jí)知識(shí)可以去看本人寫過的一篇文章《JavaScript 操作 Cookie》啄巧。
因?yàn)镃ookie是本地的磁盤文件寻歧,每次瀏覽器都會(huì)去讀取相應(yīng)的Cookie,所以建議去除不必要的Coockie秩仆,使Coockie體積盡量小以減少對(duì)用戶響應(yīng)的影響码泛;
使用Cookie跨域操作時(shí)注意在適應(yīng)級(jí)別的域名上設(shè)置coockie以便使子域名不受其影響;
Cookie是有生命周期的澄耍,所以請(qǐng)注意設(shè)置合理的過期時(shí)間噪珊,合理地Expire時(shí)間和不要過早去清除coockie,都會(huì)改善用戶的響應(yīng)時(shí)間齐莲。