使用 RAIL 模型評(píng)估頁(yè)面性能

RAIL 是一種以用戶為中心的性能模型白华。每個(gè)網(wǎng)絡(luò)應(yīng)用均具有與其生命周期有關(guān)的四個(gè)不同方面脏榆,且這些方面以不同的方式影響著性能:

image.png

TL;DR

  • 以用戶為中心;最終目標(biāo)不是讓您的網(wǎng)站在任何特定設(shè)備上都能運(yùn)行很快吮旅,而是使用戶滿意亿柑。
  • 立即響應(yīng)用戶;在 100 毫秒以內(nèi)確認(rèn)用戶輸入肮柜。
  • 設(shè)置動(dòng)畫(huà)或滾動(dòng)時(shí)陷舅,在 10 毫秒以內(nèi)生成幀。
  • 最大程度增加主線程的空閑時(shí)間审洞。
  • 持續(xù)吸引用戶蔑赘;在 1000 毫秒以內(nèi)呈現(xiàn)交互內(nèi)容。

以用戶為中心

讓用戶成為您的性能工作的中心预明。用戶花在網(wǎng)站上的大多數(shù)時(shí)間不是等待加載缩赛,而是在使用時(shí)等待響應(yīng)。了解用戶如何評(píng)價(jià)性能延遲:

屏幕快照 2018-01-17 15.01.35.png

響應(yīng):在 100 毫秒以內(nèi)響應(yīng)

在用戶注意到滯后之前您有 100 毫秒的時(shí)間可以響應(yīng)用戶輸入撰糠。這適用于大多數(shù)輸入酥馍,不管他們是在點(diǎn)擊按鈕、切換表單控件還是啟動(dòng)動(dòng)畫(huà)阅酪。但不適用于觸摸拖動(dòng)或滾動(dòng)旨袒。

如果您未響應(yīng),操作與反應(yīng)之間的連接就會(huì)中斷术辐。用戶會(huì)注意到砚尽。

盡管很明顯應(yīng)立即響應(yīng)用戶的操作,但這并不總是正確的做法辉词。使用此 100 毫秒窗口執(zhí)行其他開(kāi)銷大的工作必孤,但需要謹(jǐn)慎,以免妨礙用戶瑞躺。如果可能敷搪,請(qǐng)?jiān)诤笈_(tái)執(zhí)行工作。

對(duì)于需要超過(guò) 500 毫秒才能完成的操作幢哨,請(qǐng)始終提供反饋赡勘。

動(dòng)畫(huà):在 10 毫秒內(nèi)生成一幀

動(dòng)畫(huà)不只是奇特的 UI 效果。例如捞镰,滾動(dòng)和觸摸拖動(dòng)就是動(dòng)畫(huà)類型闸与。

如果動(dòng)畫(huà)幀率發(fā)生變化毙替,您的用戶確實(shí)會(huì)注意到。您的目標(biāo)就是每秒生成 60 幀践樱,每一幀必須完成以下所有步驟:

image.png

從純粹的數(shù)學(xué)角度而言厂画,每幀的預(yù)算約為 16 毫秒(1000 毫秒 / 60 幀 = 16.66 毫秒/幀)。 但因?yàn)闉g覽器需要花費(fèi)時(shí)間將新幀繪制到屏幕上映胁,只有 10 毫秒來(lái)執(zhí)行代碼

在像動(dòng)畫(huà)一樣的高壓點(diǎn)中甲雅,關(guān)鍵是不論能不能做解孙,什么都不要做,做最少的工作抛人。 如果可能弛姜,請(qǐng)利用 100 毫秒響應(yīng)預(yù)先計(jì)算開(kāi)銷大的工作,這樣您就可以盡可能增加實(shí)現(xiàn) 60fps 的可能性妖枚。

如需了解詳細(xì)信息廷臼,請(qǐng)參閱渲染性能

空閑:最大程度增加空閑時(shí)間

利用空閑時(shí)間完成推遲的工作绝页。例如荠商,盡可能減少預(yù)加載數(shù)據(jù),以便您的應(yīng)用快速加載续誉,并利用空閑時(shí)間加載剩余數(shù)據(jù)莱没。

推遲的工作應(yīng)分成每個(gè)耗時(shí)約 50 毫秒的多個(gè)塊。如果用戶開(kāi)始交互酷鸦,優(yōu)先級(jí)最高的事項(xiàng)是響應(yīng)用戶饰躲。

要實(shí)現(xiàn)小于 100 毫秒的響應(yīng),應(yīng)用必須在每 50 毫秒內(nèi)將控制返回給主線程臼隔,這樣應(yīng)用就可以執(zhí)行其像素管道嘹裂、對(duì)用戶輸入作出反應(yīng),等等摔握。

以 50 毫秒塊工作既可以完成任務(wù)寄狼,又能確保即時(shí)的響應(yīng)。

加載:在 1000 毫秒以內(nèi)呈現(xiàn)內(nèi)容

在 1 秒鐘內(nèi)加載您的網(wǎng)站氨淌。否則例嘱,用戶的注意力會(huì)分散,他們處理任務(wù)的感覺(jué)會(huì)中斷宁舰。

側(cè)重于優(yōu)化關(guān)鍵渲染路徑以取消阻止渲染拼卵。

您無(wú)需在 1 秒內(nèi)加載所有內(nèi)容以產(chǎn)生完整加載的感覺(jué)。啟用漸進(jìn)式渲染和在后臺(tái)執(zhí)行一些工作蛮艰。將非必需的加載推遲到空閑時(shí)間段(請(qǐng)參閱此網(wǎng)站性能優(yōu)化 Udacity 課程腋腮,了解更多信息)。

關(guān)鍵 RAIL 指標(biāo)匯總

要根據(jù) RAIL 指標(biāo)評(píng)估您的網(wǎng)站,請(qǐng)使用 Chrome DevTools Timeline 工具記錄用戶操作即寡。然后根據(jù)這些關(guān)鍵 RAIL 指標(biāo)檢查 Timeline 中的記錄時(shí)間徊哑。

屏幕快照 2018-01-17 15.03.30.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市聪富,隨后出現(xiàn)的幾起案子莺丑,更是在濱河造成了極大的恐慌,老刑警劉巖墩蔓,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梢莽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡奸披,警方通過(guò)查閱死者的電腦和手機(jī)昏名,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阵面,“玉大人轻局,你說(shuō)我怎么就攤上這事⊙ⅲ” “怎么了仑扑?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)置鼻。 經(jīng)常有香客問(wèn)我夫壁,道長(zhǎng),這世上最難降的妖魔是什么沃疮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任盒让,我火速辦了婚禮,結(jié)果婚禮上司蔬,老公的妹妹穿的比我還像新娘邑茄。我一直安慰自己,他們只是感情好俊啼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布肺缕。 她就那樣靜靜地躺著,像睡著了一般授帕。 火紅的嫁衣襯著肌膚如雪同木。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天跛十,我揣著相機(jī)與錄音彤路,去河邊找鬼。 笑死芥映,一個(gè)胖子當(dāng)著我的面吹牛洲尊,可吹牛的內(nèi)容都是我干的远豺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坞嘀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼躯护!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起丽涩,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤棺滞,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后矢渊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體继准,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年昆淡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锰瘸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刽严。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昂灵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舞萄,到底是詐尸還是另有隱情眨补,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布倒脓,位于F島的核電站撑螺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏崎弃。R本人自食惡果不足惜甘晤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饲做。 院中可真熱鬧线婚,春花似錦、人聲如沸盆均。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泪姨。三九已至游沿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肮砾,已是汗流浹背诀黍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仗处,地道東北人蔗草。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓咒彤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親咒精。 傳聞我的和親對(duì)象是個(gè)殘疾皇子镶柱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354