前端性能優(yōu)化(持續(xù)記錄)

? ? 很多前端開發(fā)人員其實(shí)都見過‘’性能優(yōu)化‘’這個詞柬姚,特別是在面試要求上郁轻,我也不例外队秩。

? ? 所以我也曾經(jīng)直接問度娘“前端性能優(yōu)化”之類的笑旺,但是得到的結(jié)果看起來有點(diǎn)云里霧里,因?yàn)樽约簺]有去嘗試過馍资,比較過筒主,所以并沒有g(shù)et到,而這里鸟蟹,我記錄的是一些我自己用到過的性能優(yōu)化方法乌妙。

? ? 其實(shí)前端就是跟瀏覽器打交道的,所以所謂的性能優(yōu)化建钥,就是對瀏覽器進(jìn)行優(yōu)化藤韵,包括瀏覽器向服務(wù)器發(fā)起請求和接受請求,都是和瀏覽器自身有關(guān)的熊经,所以可以了解一下瀏覽器的工作原理泽艘,這樣就會對性能優(yōu)化產(chǎn)生一定的了解。

1.SPA頁面懶加載

????其實(shí)就是按需加載镐依,避免首次進(jìn)頁面加載過多的資源匹涮,造成等待時間過長。這方面知識挺多的槐壳,很多技術(shù)框架也自帶懶加載功能或者插件然低。

2.操作DOM盡量減少layout

? ? 比如目前我有兩個節(jié)點(diǎn)domA,domB,我需要通過js分別給這兩個節(jié)點(diǎn)的寬度加上20px,

? ? 代碼可能如下(jq寫法)

????$(domA).css('width',$(domA).outerWidth()+ 20 + 'px');

????$(domB).css('width',$(domB).outerWidth()+ 20 + 'px');

? ? 這樣寫是OK,分別給兩個節(jié)點(diǎn)添加了20px的寬度,但是仔細(xì)看就會發(fā)現(xiàn),代碼的執(zhí)行順序是

? ? 先獲取domA得寬度,然后再修改domA寬度

? ? 然后再獲取domB得寬度,再修改domB寬度

? ? 這樣會造成性能消耗,讀寫,讀寫,瀏覽器進(jìn)行了兩次layout操作,

? ? 而我們先獲取到兩個節(jié)點(diǎn)的寬度,再修改節(jié)點(diǎn)寬度,讀讀,寫寫,這樣瀏覽器只進(jìn)行一次layout操作。

3.選擇器優(yōu)先級

? ????? 選的越少性能越高,因?yàn)椴樵兊墓?jié)點(diǎn)少

  ? ?1.id選擇器(#myid)

  2.類選擇器(.myclassname)

  3.標(biāo)簽選擇器(div,h1,p)

  4.相鄰選擇器(h1+p)

  5.子選擇器(ul < li)

  6.后代選擇器(li a)

  7.通配符選擇器(*)

  8.屬性選擇器(a[rel="external"])

  9.偽類選擇器(a:hover,li:nth-child)

? ? 另外注意樣式系統(tǒng)從最右邊的選擇符開始向左進(jìn)行匹配規(guī)則,

? ? 比如.worker_main .tree div , 瀏覽器會遍歷所有的div標(biāo)簽,然后再找到.tree的節(jié)點(diǎn),最后再找到.worker的節(jié)點(diǎn).

? ? 所以為了提升渲染性能,多層可以用class選擇器代替

? ? 當(dāng)然還需要以實(shí)際情況出發(fā),如果頁面dom不多,為了可維護(hù)性,還是可以使用后代選擇器或者子類選擇器的.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市脚翘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绍哎,老刑警劉巖来农,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異崇堰,居然都是意外死亡沃于,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門海诲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來繁莹,“玉大人,你說我怎么就攤上這事特幔∽裳荩” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵蚯斯,是天一觀的道長薄风。 經(jīng)常有香客問我,道長拍嵌,這世上最難降的妖魔是什么遭赂? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任峭火,我火速辦了婚禮紧显,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘誊抛。我一直安慰自己狈蚤,他們只是感情好困肩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脆侮,像睡著了一般僻弹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上他嚷,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天蹋绽,我揣著相機(jī)與錄音,去河邊找鬼筋蓖。 笑死卸耘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粘咖。 我是一名探鬼主播蚣抗,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了翰铡?” 一聲冷哼從身側(cè)響起钝域,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锭魔,沒想到半個月后例证,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迷捧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年织咧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漠秋。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡笙蒙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庆锦,到底是詐尸還是另有隱情捅位,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布搂抒,位于F島的核電站绿渣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏燕耿。R本人自食惡果不足惜中符,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望誉帅。 院中可真熱鬧淀散,春花似錦、人聲如沸蚜锨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亚再。三九已至郭膛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氛悬,已是汗流浹背则剃。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留如捅,地道東北人棍现。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像镜遣,于是被迫代替她去往敵國和親己肮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評論 1 92
  • <a name='html'>HTML</a> Doctype作用谎僻?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)娄柳、<...
    clark124閱讀 3,456評論 1 19
  • 【臻仁論道】 中國人,中國文化的最顯著特點(diǎn): 包容并蓄艘绍, 融會貫通赤拒, 循序漸進(jìn), 繼承發(fā)展鞍盗。 這正是五千年文明不曾...
    四通四達(dá)閱讀 185評論 0 0
  • 03 不亦樂乎 長沙算是一座大城市需了,車水馬龍跳昼,所以堵車合情合理般甲,只是今天更堵而已,基本上每一個紅綠燈路口都排成了...
    玫瑰花刺血閱讀 207評論 0 1
  • 運(yùn)程書上說鹅颊,屬兔的今年要遠(yuǎn)行敷存,果真,四個月內(nèi)堪伍,我真的走南闖北锚烦。從華東到西北,從西北到華南帝雇,從華南到西南涮俄,西...
    人生不怕折騰閱讀 1,476評論 4 10