作為前端你可能要知道如何加快頁(yè)面渲染速度的幾點(diǎn)知識(shí)

  1. content-visibility
content-visibility:auto

// 一般來(lái)說(shuō)堕伪,大多數(shù)Web應(yīng)用都有復(fù)雜的UI元素幕帆,它的擴(kuò)展范圍超出了用戶在瀏覽器視圖中看到的內(nèi)容。在這種情況下景埃,我們可以使用內(nèi)容可見(jiàn)性( content-visibility )來(lái)跳過(guò)屏幕外內(nèi)容的渲染计贰。如果你有大量的離屏內(nèi)容筷笨,這將大大減少頁(yè)面渲染時(shí)間拐袜。
// 這個(gè)功能是最新增加的功能之一,也是對(duì)提高渲染性能影響最大的功能之一谎亩。雖然 content-visibility 接受幾個(gè)值炒嘲,但我們可以在元素上使用 content-visibility: auto; 來(lái)獲得直接的性能提升。
// 性能可提升將近7倍


// 注意:如果你使用了該屬性匈庭,頁(yè)面無(wú)法正常滾動(dòng)那你不妨試試下面這個(gè)配套的屬性:
contain-intrinsic-size: 2000px  // 它指定了一個(gè)元素的自然大小夫凸,因此,元素將以給定的高度而不是0px呈現(xiàn)阱持。
     
  1. will-change
// 在頁(yè)面上使用動(dòng)畫效果是一個(gè)前端必備的技能之一夭拌,同時(shí)要知道這些動(dòng)畫是和其他元素一起定期渲染的,今天就來(lái)說(shuō)說(shuō)這個(gè)主角 will-change 衷咽,他可以讓瀏覽器使用GPU來(lái)優(yōu)化其中的一些動(dòng)畫操作鸽扁,將識(shí)別 will-change 屬性并優(yōu)化未來(lái)與不透明度相關(guān)的變化

//直觀的屬性,會(huì)讓動(dòng)畫FPS從50 直接飆升到 120FPS兵罢。
// FPS是什么? 玩游戲的人會(huì)知道献烦,如果不知道麻煩自行百度
// 注意: 如果給非動(dòng)畫元素使用該屬性則會(huì)造成資源浪費(fèi)滓窍。

// css
.box{
  will-change:opacity;
}

// html  父元素使用給屬性卖词,子元素來(lái)表示動(dòng)畫,
<div class="box">這里是一些動(dòng)畫元素</div>


  1. 減少渲染阻止時(shí)間
// 通常我們引入css的時(shí)候會(huì)這樣做吏夯;
<link rel="stylesheet" href="main.css">
// 如果項(xiàng)目不大此蜈,大可使用該引入方法,反之優(yōu)化的方法則需要通過(guò)分解方式來(lái)引入css樣式表噪生,詳情如下:
<link rel="stylesheet" href="sm.css" media="(min-width: 20em)" />
<link rel="stylesheet" href="md.css" media="(min-width: 64em)" />
<link rel="stylesheet" href="lg.css" media="(min-width: 90em)" />
<link rel="stylesheet" href="ex.css" media="(min-width: 120em)" />
<link rel="stylesheet" href="print.css" media="print" />
// 根據(jù)樣式因素分解樣式表可以減少渲染阻止時(shí)間裆赵。
  1. 根據(jù)被引入的js文件來(lái)加快頁(yè)面的渲染
// 一般情況下我們?cè)陧?yè)面中引入文件是如下操作;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    // 目光聚焦到此處
    <script src="./js/main.js"></script>
</body>
</html>

下面可以使用這兩種方法來(lái)加快頁(yè)面渲染
1. <script src="./js/main.js" async></script>
async: 字面意思就是 異步跺嗽,他將告訴瀏覽器战授,此js文件是異步加載的,也就意味著瀏覽器加載到此處時(shí)不會(huì)堵塞桨嫁,
會(huì)和其他元素節(jié)點(diǎn)同時(shí)進(jìn)行植兰;
注意:正因如此,攜帶async的script標(biāo)簽文件璃吧,要處理好引用關(guān)系楣导,
比如,b.js文件里面的函數(shù)值畜挨,要引用a.js文件里面的某個(gè)變量筒繁,那你最好將async去掉噩凹,以便達(dá)到按順序執(zhí)行文件。

2. <script src="./js/main.js" defer></script>
defer:字面意思是 推遲毡咏, 他規(guī)定瀏覽器是否對(duì)腳本執(zhí)行進(jìn)行延遲驮宴,直到頁(yè)面加載為止。
一旦頁(yè)面加載完畢就會(huì)立即執(zhí)行該文件血当;

  1. 老生常談的幾點(diǎn)幻赚;
1. 處理好循環(huán)操作,比如將循環(huán)的數(shù)組賦值一個(gè)變量臊旭,去循環(huán)其變量落恼;
2. 如果要向頁(yè)面追加數(shù)據(jù),可使用:document.createDocumentFragment( ) 根據(jù)系統(tǒng)刷新不乏走离熏,最大程度避免丟幀現(xiàn)象佳谦;
3. 對(duì)源代碼進(jìn)行壓縮;
4. 懶加載滋戳;
5. 防抖: 輸入搜索時(shí)候钻蔑,可以用debounce等優(yōu)化方式,減少HTTP請(qǐng)求奸鸯;
6. 節(jié)流:簡(jiǎn)單解答:只允許一個(gè)函數(shù)在N秒內(nèi)執(zhí)行一次咪笑,從而減少HTTP請(qǐng)求;
7. 圖片編碼優(yōu)化娄涩,盡量使用svg和字體圖標(biāo)
  1. 服務(wù)器方面優(yōu)化補(bǔ)充
1. 利用CDN
2. 按需加載資源
3. 在使用 DOM 操作庫(kù)時(shí)用上 array-ids
4. 緩存優(yōu)化
5. 避免重定向
6. 啟用 HTTP/2
7. 應(yīng)用性能分析
8. 使用負(fù)載均衡方案
9. 使用索引加速數(shù)據(jù)庫(kù)查詢
10. 使用更快的轉(zhuǎn)譯方案

暫時(shí)就這么多……

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窗怒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蓄拣,更是在濱河造成了極大的恐慌扬虚,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件球恤,死亡現(xiàn)場(chǎng)離奇詭異辜昵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)咽斧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門堪置,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人张惹,你說(shuō)我怎么就攤上這事舀锨。” “怎么了诵叁?”我有些...
    開(kāi)封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵雁竞,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng)碑诉,這世上最難降的妖魔是什么彪腔? 我笑而不...
    開(kāi)封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮进栽,結(jié)果婚禮上德挣,老公的妹妹穿的比我還像新娘。我一直安慰自己快毛,他們只是感情好格嗅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著唠帝,像睡著了一般屯掖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上襟衰,一...
    開(kāi)封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天贴铜,我揣著相機(jī)與錄音,去河邊找鬼瀑晒。 笑死绍坝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的苔悦。 我是一名探鬼主播轩褐,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼玖详!你這毒婦竟也來(lái)了把介?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤竹宋,失蹤者是張志新(化名)和其女友劉穎劳澄,沒(méi)想到半個(gè)月后地技,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈七,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年莫矗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飒硅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡作谚,死狀恐怖三娩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妹懒,我是刑警寧澤雀监,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響会前,放射性物質(zhì)發(fā)生泄漏好乐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一瓦宜、第九天 我趴在偏房一處隱蔽的房頂上張望蔚万。 院中可真熱鬧,春花似錦临庇、人聲如沸反璃。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)淮蜈。三九已至,卻和暖如春已卷,著一層夾襖步出監(jiān)牢的瞬間礁芦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工悼尾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柿扣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓闺魏,卻偏偏與公主長(zhǎng)得像未状,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子析桥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • 今天感恩節(jié)哎司草,感謝一直在我身邊的親朋好友。感恩相遇泡仗!感恩不離不棄埋虹。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,567評(píng)論 0 11
  • 彩排完娩怎,天已黑
    劉凱書法閱讀 4,218評(píng)論 1 3
  • 表情是什么搔课,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息截亦。高興了當(dāng)然就笑了爬泥,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,101評(píng)論 2 7