前端性能優(yōu)化之n種方法

前端性能優(yōu)化有很多種疫蔓,我們?cè)趯?shí)際工作中或許也就用到那么幾種含懊。但是,在面試的時(shí)候衅胀,知道的不知道的岔乔,要說(shuō)很多種,下面是我在工作學(xué)習(xí)中遇到的滚躯,不全雏门,希望大家補(bǔ)充。

1掸掏、減少HTTP請(qǐng)求茁影。

盡量合并圖片、CSS丧凤、JS募闲。比如加載一個(gè)頁(yè)面,如果有5個(gè)css文件的話息裸,那么會(huì)發(fā)出5次http請(qǐng)求蝇更,這樣會(huì)讓用戶第一次訪問(wèn)你的頁(yè)面的時(shí)候會(huì)長(zhǎng)時(shí)間等待沪编。而如果把這個(gè)5個(gè)文件合成一個(gè)的話,就只需要發(fā)出一次http請(qǐng)求年扩,節(jié)省網(wǎng)絡(luò)請(qǐng)求時(shí)間蚁廓,加快頁(yè)面的加載。

2厨幻、把CSS放到頂部

因?yàn)榫W(wǎng)頁(yè)上的資源加載時(shí)從上網(wǎng)下順序加載的相嵌,所以css放在頁(yè)面的頂部能夠優(yōu)先渲染頁(yè)面,讓用戶感覺(jué)頁(yè)面加載很快况脆。

3饭宾、把JS放到底部

js加載時(shí)同步加載,會(huì)對(duì)后續(xù)的資源造成阻塞格了,必須得等js加載完才去加載后續(xù)的文件 看铆,所以就把js放在頁(yè)面底部最后加載。

4盛末、將CSS和JS放到外部文件中

目的是緩存文件弹惦。 但有時(shí)候?yàn)榱藴p少請(qǐng)求,也會(huì)直接寫到頁(yè)面里悄但,需根據(jù)PV和IP的比例權(quán)衡棠隐。

5、精簡(jiǎn)CSS和JS

這里就涉及到css和js的壓縮了檐嚣。比如一個(gè)css文件助泽,把文件內(nèi)的空格回車全部去掉,減少文件的大小嚎京。grunt嗡贺,glup都可以壓縮css、js文件挖藏。
gulp的使用方法在我的專欄-gulp學(xué)習(xí)筆記暑刃,圖文并茂厢漩,有需要的可以移步膜眠。

6、刪除重復(fù)的JS和CSS

重復(fù)調(diào)用腳本溜嗜,除了增加額外的HTTP請(qǐng)求外宵膨,多次運(yùn)算也會(huì)浪費(fèi)時(shí)間。在IE和Firefox中不管腳本是否可緩存炸宵,它們都存在重復(fù)運(yùn)算JavaScript的問(wèn)題辟躏。

7、css選擇符優(yōu)化

因?yàn)閏ss是從右向左解析的土全,根據(jù)這個(gè)規(guī)則捎琐,盡量使右邊的樣式唯一

8会涎、避免空的src和href

當(dāng)link標(biāo)簽的href屬性和script標(biāo)簽的src屬性為空時(shí)候,瀏覽器渲染的時(shí)候會(huì)把當(dāng)前頁(yè)面的URL作為它們的屬性值瑞凑,從而把頁(yè)面的內(nèi)容加載進(jìn)來(lái)作為它們的值末秃。所以要避免犯這樣的疏忽。

9籽御、將CSS和JS放到外部文件中

這樣做的目的是緩存文件 但有時(shí)候?yàn)榱藴p少請(qǐng)求练慕,也會(huì)直接寫到頁(yè)面里,需根據(jù)PV和IP的比例權(quán)衡技掏。

10铃将、縮小favicon.ico并緩存

11、避免使用CSS表達(dá)式

舉個(gè)css表達(dá)式的例子

font-color:expression((new Date()).getHours()%3 ? "#fff" : "#aaa");

這個(gè)表達(dá)式會(huì)持續(xù)的在頁(yè)面上計(jì)算樣式哑梳,影響頁(yè)面的性能劲阎。并且css表達(dá)式只被IE支持。

12鸠真、緩存AJAX請(qǐng)求

異步請(qǐng)求同樣的造成用戶等待哪工,所以使用ajax請(qǐng)求時(shí),要主動(dòng)告訴瀏覽器如果該請(qǐng)求有緩存就去請(qǐng)求緩存內(nèi)容弧哎。如下代碼片段, cache:true就是顯式的要求如果當(dāng)前請(qǐng)求有緩存的話雁比,直接使用緩存
異步請(qǐng)求同樣的造成用戶等待,所以使用ajax請(qǐng)求時(shí)撤嫩,要主動(dòng)告訴瀏覽器如果該請(qǐng)求有緩存就去請(qǐng)求緩存內(nèi)容偎捎。如下代碼片段, cache:true就是顯式的要求如果當(dāng)前請(qǐng)求有緩存的話,直接使用緩存

  $.ajax({
  url : 'url',
  dataType : "json",
  cache: true,
  success : function(son, status){},
  error : function(){}
})

13序攘、使用GET來(lái)完成AJAX請(qǐng)求

在安全性能要求允許的情況下茴她,使用GET來(lái)完成AJAX請(qǐng)求。當(dāng)使用XMLHttpRequest時(shí)程奠,瀏覽器中的POST方法是一個(gè)“兩步走”的過(guò)程:首先發(fā)送文件頭丈牢,然后才發(fā)送數(shù)據(jù)。因此使用GET獲取數(shù)據(jù)時(shí)更加有意義瞄沙。

15己沛、減少DOM操作

因?yàn)槊看尾僮鱀OM,都會(huì)帶來(lái)repaint和refolw

16距境、減少Cookie的大小

Cookie里面別塞那么多東西申尼,因?yàn)槊總€(gè)請(qǐng)求都得帶著他跑。

17垫桂、使用CDN

網(wǎng)站上靜態(tài)資源即css师幕、js全都使用cdn分發(fā),圖片也一樣诬滩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霹粥,一起剝皮案震驚了整個(gè)濱河市灭将,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌后控,老刑警劉巖宗侦,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忆蚀,居然都是意外死亡矾利,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門馋袜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)男旗,“玉大人,你說(shuō)我怎么就攤上這事欣鳖〔旎剩” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵泽台,是天一觀的道長(zhǎng)什荣。 經(jīng)常有香客問(wèn)我,道長(zhǎng)怀酷,這世上最難降的妖魔是什么稻爬? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蜕依,結(jié)果婚禮上桅锄,老公的妹妹穿的比我還像新娘。我一直安慰自己样眠,他們只是感情好友瘤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著檐束,像睡著了一般辫秧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上被丧,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天盟戏,我揣著相機(jī)與錄音,去河邊找鬼晚碾。 笑死抓半,一個(gè)胖子當(dāng)著我的面吹牛喂急,可吹牛的內(nèi)容都是我干的格嘁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼廊移,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼糕簿!你這毒婦竟也來(lái)了探入?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤懂诗,失蹤者是張志新(化名)和其女友劉穎蜂嗽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體殃恒,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡植旧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了离唐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片病附。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亥鬓,靈堂內(nèi)的尸體忽然破棺而出完沪,到底是詐尸還是另有隱情,我是刑警寧澤嵌戈,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布覆积,位于F島的核電站,受9級(jí)特大地震影響熟呛,放射性物質(zhì)發(fā)生泄漏宽档。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一庵朝、第九天 我趴在偏房一處隱蔽的房頂上張望雌贱。 院中可真熱鬧,春花似錦偿短、人聲如沸欣孤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)降传。三九已至,卻和暖如春勾怒,著一層夾襖步出監(jiān)牢的瞬間婆排,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工笔链, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留段只,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓鉴扫,卻偏偏與公主長(zhǎng)得像赞枕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案炕婶? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • 網(wǎng)站優(yōu)化離不開前后端的互相協(xié)作姐赡,但是對(duì)于前端工程師來(lái)說(shuō),在保證后端技術(shù)方案不變時(shí)柠掂,能不能只利用前端技術(shù)來(lái)優(yōu)化網(wǎng)站呢...
    留七七閱讀 6,317評(píng)論 0 31
  • Yahoo!的Exceptional Performance團(tuán)隊(duì)為改善Web性能帶來(lái)最佳實(shí)踐项滑。他們?yōu)榇诉M(jìn)行了一系列...
    拉風(fēng)的老衲閱讀 1,844評(píng)論 0 1
  • 性能優(yōu)化方向分類 請(qǐng)求數(shù)量: 合并腳本和樣式表, CSS Sprites涯贞, 拆分初始化負(fù)載枪狂, 劃分主域(使用“查找...
    Www劉閱讀 1,766評(píng)論 3 8
  • 在hbuilder中友一個(gè)插件是nodeclipse這個(gè)插件,我們點(diǎn)擊安裝宋渔,把這個(gè)插件安裝好摘完。 然后我們點(diǎn)擊新建的...
    郝特么冷閱讀 20,468評(píng)論 0 1