Web前端優(yōu)化

一谦趣、Web前端優(yōu)化最佳實(shí)踐之 內(nèi)容

1. 盡量減少HTTP請(qǐng)求;

合并文件鸽疾,比如把多個(gè)css文件合成一個(gè)周循;
CSS Sprites 利用CSS background 相關(guān)元素進(jìn)行背景圖絕對(duì)定位;
圖像地圖 (在一個(gè)圖像上劃分不同區(qū)域映射不同的鏈接)份帐;
內(nèi)聯(lián)圖像(使用data:URL scheme 在實(shí)際的頁(yè)面嵌入圖像數(shù)據(jù));

2. 減少DNS查找:

DNS查詢完成之前瀏覽器不能從這個(gè)主機(jī)下載任何任何文件楣导。
方法:DNS緩存废境、將資源分布到恰當(dāng)數(shù)量的主機(jī)名,平衡 并行下載和 DNS查詢 ;

3. 避免重定向:多余的中間訪問(wèn) (不是絕對(duì)的避免筒繁,盡量減少)

定義:重定向用于將用戶從一個(gè)url重新路由到另一個(gè)url;
損傷:重定向的延遲也很嚴(yán)重噩凹,因?yàn)樗舆t了整個(gè)html文檔的傳輸,在html文檔到達(dá)之前毡咏,頁(yè)面中不會(huì)呈現(xiàn)出任何東西驮宴,也沒有任何組件會(huì)被下載,在用戶與html文檔之間插入重定向延遲了頁(yè)面中的所有東西;

4. 使Ajax可緩存

Ajax頁(yè)面緩存是ajax處理數(shù)據(jù)時(shí)對(duì)一些重復(fù)相同數(shù)據(jù)進(jìn)行一個(gè)緩存操作呕缭,這種設(shè)計(jì)使客戶端對(duì)一些靜態(tài)頁(yè)面內(nèi)容的請(qǐng)求堵泽,比如圖片,css文件恢总,js腳本等迎罗,變得更加快捷,提高了頁(yè)面的響應(yīng)速度片仿,也節(jié)省了網(wǎng)絡(luò)通信資源;

5. 非必須組件延遲加載 纹安,未來(lái)所需組件預(yù)加載 (異步);

6.減少DOM元素?cái)?shù)量 ;

7. 切分組件到多個(gè)域;

主要的目的是提高頁(yè)面組件并行下載能力砂豌,但不要跨太多域厢岂;

8. 最小化iframe的數(shù)量

iframes 提供了一個(gè)簡(jiǎn)單的方式把一個(gè)網(wǎng)站的內(nèi)容嵌入到另一個(gè)網(wǎng)站中。 但我們需要慎重的使用iframe阳距。iframe的創(chuàng)建比其它包括script和css的 DOM 元素的創(chuàng)建慢了 1-2 個(gè)數(shù)量級(jí)塔粒;
   使用 iframe 的頁(yè)面一般不會(huì)包含太多 iframe,所以創(chuàng)建 DOM 節(jié)點(diǎn)所花費(fèi)的時(shí)間不會(huì)占很大的比重筐摘。但帶來(lái)一些其它的問(wèn)題:onload 事件以及連接池(connection pool)窗怒。
Iframes 阻塞頁(yè)面加載
  及時(shí)觸發(fā) window 的 onload 事件是非常重要的。onload 事件觸發(fā)使瀏覽 器的 “忙” 指示器停止蓄拣,告訴用戶當(dāng)前網(wǎng)頁(yè)已經(jīng)加載完畢。當(dāng) onload 事件 加載延遲后努隙,它給用戶的感覺就是這個(gè)網(wǎng)頁(yè)非常慢球恤。
  window 的 onload 事件需要在所有 iframe 加載完畢后(包含里面的元素)才會(huì)觸發(fā)。在 Safari 和 Chrome 里荸镊,通過(guò) JavaScript 動(dòng)態(tài)設(shè)置 iframe 的src 可以避免這種阻塞情況咽斧。

  1. 杜絕http 404錯(cuò)誤堪置;

二. Web前端優(yōu)化最佳實(shí)踐之 Server篇

使用CDN ;
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)業(yè)務(wù)是指利用分布在不同區(qū)域的節(jié)點(diǎn)服務(wù)器群組成流量分配管理網(wǎng)絡(luò)平臺(tái)张惹,為用戶提供內(nèi)容的分散存儲(chǔ)和高速緩存舀锨,并根據(jù)網(wǎng)絡(luò)動(dòng)態(tài)流量和負(fù)載狀況,將內(nèi)容分發(fā)到快速宛逗、穩(wěn)定的緩存服務(wù)器上坎匿,提高用戶內(nèi)容的訪問(wèn)響應(yīng)速度和服務(wù)的可用性服務(wù)。
添加Expires或者Cache-Control信息頭 雷激;
Gzip壓縮內(nèi)容替蔬;
能有效減輕網(wǎng)絡(luò)流量的壓力;
配置ETags(Entity Tag 實(shí)體標(biāo)簽)屎暇;
屬于HTTP協(xié)議的一部分承桥,也就是所有的web服務(wù)器都應(yīng)該(也確實(shí)能)支持這個(gè)特性。它的作用是用一個(gè)特殊的字符串來(lái)標(biāo)識(shí)某個(gè)資源的“版本”根悼,客戶端(瀏覽器)來(lái)請(qǐng)求的時(shí)候凶异,可以比較,如果ETag一致挤巡,則表示該資源并沒有修改過(guò)剩彬,客戶端(瀏覽器)可以使用自己緩存的版本;
盡早刷新Buffer玄柏;
Ajax請(qǐng)求使用GET方法 襟衰;
XMLHttpRequest POST要兩步,而GET只需要一步(注意:在IE上GET能處理的最大url長(zhǎng)度是2k)粪摘;
幾個(gè)需要補(bǔ)充的地方:
1瀑晒、“當(dāng)然,ETag對(duì)多數(shù)站點(diǎn)性能的影響并不是很大”徘意,應(yīng)該說(shuō)ETag在正確使用的情況下苔悦,會(huì)讓大量的請(qǐng)求以304頭方式響應(yīng),可以相當(dāng)?shù)墓?jié)省服務(wù)器資源和帶寬椎咧。
2玖详、對(duì)于盡早刷新這點(diǎn),PHP幾乎是做不到的勤讽,即使執(zhí)行了flush以及類似的函數(shù)蟋座,也要等到請(qǐng)求完全執(zhí)行之后,才會(huì)輸出給瀏覽器端脚牍。
3向臀、Ajax使用GET和POST各有好處,GET方式可以更快響應(yīng)诸狭,但是可能會(huì)有被瀏覽器緩存的問(wèn)題券膀,一般都需要加個(gè)隨機(jī)數(shù)來(lái)避免君纫,POST方式則不會(huì),so芹彬,最好是根據(jù)自己的情況分別使用GET和POST 方法蓄髓;
避免空src的img標(biāo)簽

三、Web前端優(yōu)化最佳實(shí)踐之 Cookie篇

縮小Cookie大惺姘铩会喝;盡量控制cookie的大小,不要塞入一些無(wú)用的信息会前;
針對(duì)Web組件使用域名無(wú)關(guān)性的Cookie好乐;
-- 這里說(shuō)的Web組件,多指靜態(tài)文件瓦宜,比如圖片蔚万、CSS等,客戶端請(qǐng)求靜態(tài)文件的時(shí)候临庇,減少了Cookie的反復(fù)傳輸對(duì)主域名的影響反璃;

四、Web前端優(yōu)化最佳實(shí)踐之 CSS篇

把CSS放到代碼頁(yè)上端假夺,瀏覽器能夠有針對(duì)性的對(duì)HTML頁(yè)面從上到下進(jìn)行解析和渲染淮蜈;
避免CSS表達(dá)式 ;
從頁(yè)面中剝離JavaScript 與 CSS已卷,能夠有針對(duì)性的對(duì)其進(jìn)行單獨(dú)的處理策略梧田,比如壓縮或者緩存策略;
精簡(jiǎn)JavaScript 與 CSS (語(yǔ)法能簡(jiǎn)寫的簡(jiǎn)寫)侧蘸;
使用<link> 而不是@import (在IE中@import指令等同于把link標(biāo)記寫在HTML底部)裁眯;
避免使用Filter ;

五讳癌、Web前端優(yōu)化最佳實(shí)踐之 JavaScript篇

將腳本放到HTML代碼頁(yè)底部穿稳;
外部引入javascript和css;
壓縮javascript和css 晌坤;
移除重復(fù)腳本 逢艘;
減少DOM訪問(wèn) ;
1骤菠、緩存已經(jīng)訪問(wèn)過(guò)的元素它改;
2、“離線”更新節(jié)點(diǎn)商乎,再將它們添加到樹中搔课;
3、避免使用JavaScript輸出頁(yè)面布局--應(yīng)該是CSS的事兒;
合理設(shè)計(jì)事件監(jiān)聽器 爬泥;

六、Web前端優(yōu)化最佳實(shí)踐之 Image 篇

優(yōu)化圖片:根據(jù)實(shí)際顏色需要選擇色深崩瓤、壓縮 袍啡;
優(yōu)化css精靈 ;
不要在HTML中拉伸圖片 却桶;
保證favicon.ico小并且可緩存 境输;

七、Web前端優(yōu)化最佳實(shí)踐之 Mobile(iPhone) 篇

Web前端優(yōu)化最佳實(shí)踐最后一部分是針對(duì)移動(dòng)應(yīng)用的颖系,其實(shí)只是針對(duì)iPhone的嗅剖,目前只有兩條規(guī)則;
單個(gè)數(shù)據(jù)對(duì)象小于25k(Keep Components under 25k)嘁扼;
--- Apple官方信息指出可緩存到內(nèi)存中的Web數(shù)據(jù)對(duì)象最大支持到10M信粮,但經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)也就是25k左右趁啸;
Pack Components into a Multipart Document
--- 將Web頁(yè)面組件打包成一個(gè)多部分組成的文檔强缘,其目的是減少HTTP請(qǐng)求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末不傅,一起剝皮案震驚了整個(gè)濱河市旅掂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌访娶,老刑警劉巖商虐,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異崖疤,居然都是意外死亡秘车,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門戳晌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)鲫尊,“玉大人,你說(shuō)我怎么就攤上這事沦偎∫呦颍” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵豪嚎,是天一觀的道長(zhǎng)搔驼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)侈询,這世上最難降的妖魔是什么舌涨? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮扔字,結(jié)果婚禮上囊嘉,老公的妹妹穿的比我還像新娘温技。我一直安慰自己,他們只是感情好扭粱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布舵鳞。 她就那樣靜靜地躺著,像睡著了一般琢蛤。 火紅的嫁衣襯著肌膚如雪蜓堕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天博其,我揣著相機(jī)與錄音套才,去河邊找鬼。 笑死慕淡,一個(gè)胖子當(dāng)著我的面吹牛背伴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播儡率,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挂据,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了儿普?” 一聲冷哼從身側(cè)響起崎逃,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眉孩,沒想到半個(gè)月后个绍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浪汪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年巴柿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片死遭。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡广恢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呀潭,到底是詐尸還是另有隱情钉迷,我是刑警寧澤钠署,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布糠聪,位于F島的核電站,受9級(jí)特大地震影響谐鼎,放射性物質(zhì)發(fā)生泄漏舰蟆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望身害。 院中可真熱鬧味悄,春花似錦、人聲如沸题造。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)界赔。三九已至,卻和暖如春牵触,著一層夾襖步出監(jiān)牢的瞬間淮悼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工揽思, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袜腥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓钉汗,卻偏偏與公主長(zhǎng)得像羹令,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子损痰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一福侈、Web前端優(yōu)化最佳實(shí)踐之 內(nèi)容 盡量減少HTTP請(qǐng)求; 合并文件卢未,比如把多個(gè)css文件合成一個(gè)肪凛;CSS Spr...
    LaBaby_閱讀 434評(píng)論 0 3
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評(píng)論 25 707
  • Yahoo!的Exceptional Performance團(tuán)隊(duì)為改善Web性能帶來(lái)最佳實(shí)踐。他們?yōu)榇诉M(jìn)行了一系列...
    拉風(fēng)的老衲閱讀 1,848評(píng)論 0 1
  • 孤獨(dú)不僅僅是一個(gè)人待著辽社,孤獨(dú)是強(qiáng)者的一種勇氣伟墙;孤獨(dú)是熱愛生命的一種激情;孤獨(dú)是靈魂背對(duì)著凡俗的諸種誘惑與上蒼滴铅、與萬(wàn)...
    宇宙第二帥的恒寶寶閱讀 235評(píng)論 0 0
  • 2012年7月戳葵,在我拿到那一紙錄取通知書時(shí),沒有原來(lái)所想的那么興奮汉匙,壓在我和我媽頭上的是一個(gè)三線城市二本院校四年的...
    流浪小二黑閱讀 226評(píng)論 0 1