MIP加速原理

2018-11-07 17:27 更新

本文檔為您詳細(xì)闡釋MIP頁(yè)面的加速原理

經(jīng)過精心設(shè)計(jì)的JavaScript

為了去除臃腫的客戶端腳本,MIP文件不允許自定義JavaScript;對(duì)一些強(qiáng)依賴JavaScript的功能(如:廣告、統(tǒng)計(jì)和交互),MIP提供與MIP runtime兼容的封裝好的組件來(lái)實(shí)現(xiàn)。

JavaScript 引用原則:

  • 目前MIP不允許用戶自定義JavaScript,需要用MIP 組件的形式引進(jìn)來(lái),從而確保安全性和性能表現(xiàn)

  • 可以引用mip-iframe來(lái)引入實(shí)現(xiàn)部分富交互的功能,這樣,即使開發(fā)時(shí)使用最影響性能的document.write,也不會(huì)影響主頁(yè)面的渲染

  • MIP組件是開源的,允許開發(fā)者自定義功能組件,項(xiàng)目也將持續(xù)提供多樣的組件,以適應(yīng)不通的需求

所有靜態(tài)資源需要標(biāo)明尺寸

在頁(yè)面開發(fā)時(shí),資源常常不會(huì)被設(shè)定寬高,特別是使用廣告或者通過調(diào)用 `document.write() 注入的時(shí)候。由于資源大小不能確定,頁(yè)面經(jīng)常要進(jìn)行反復(fù)重新的繪制;

現(xiàn)在,MIP要求將所有的資源(廣告、圖片、音頻和視頻)標(biāo)明尺寸。當(dāng)資源真正加載時(shí),所有資源大小可以被立即推斷出并迅速的用于計(jì)算頁(yè)面布局,加載中的資源將無(wú)縫呈現(xiàn),不必因?yàn)轫?yè)面頻繁更新布局而影響到用戶的閱讀體驗(yàn)。

不允許任何機(jī)制阻止頁(yè)面渲染

開發(fā)者的任何自定義腳本,都需要用MIP的tag反饋給MIP,例如mip-ad、mip-iframe等,這些方式不會(huì)阻塞頁(yè)面的layout和渲染。

控制外部資源加載

MIP runtime會(huì)控制外部資源的額加載來(lái)確保其高效性,從而使用戶想閱讀的內(nèi)容盡快出現(xiàn)在屏幕中。

封裝交互功能

MIP提倡網(wǎng)頁(yè)能給用戶直接簡(jiǎn)單的體驗(yàn),但這并不意味著MIP限制了頁(yè)面的生動(dòng)和有趣。MIP runtime提供了高度優(yōu)化的被封裝的JavaScript,開發(fā)者無(wú)需投入過多精力去實(shí)現(xiàn)復(fù)雜的交互功能。

只允許inline的css

css的加載,會(huì)阻止頁(yè)面的渲染,css內(nèi)聯(lián)可以減少客戶端的開銷。

只允許GPU加速的動(dòng)畫

MIP只允許用transforms和opacity來(lái)完成動(dòng)畫效果,當(dāng)動(dòng)畫能在GPU上執(zhí)行時(shí),僅觸發(fā)渲染層合并。

MIP 緩存

MIP另一個(gè)重要的意義在于能夠幫站長(zhǎng)加速網(wǎng)頁(yè),百度將會(huì)把MIP網(wǎng)頁(yè)緩存到百度CDN中。只要符合MIP標(biāo)準(zhǔn),都可以使用MIP緩存。

開放且持續(xù)更新

MIP是一個(gè)開源項(xiàng)目,所有的標(biāo)準(zhǔn)并非一成不變。我們會(huì)持續(xù)不斷進(jìn)行優(yōu)化,期待您的共同參與!

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)