摘要:百度在一年前推出了稱為的前端開發(fā)組件,主要目的是加速移動(dòng)端網(wǎng)頁的顯示。不過呢,百度已經(jīng)在開發(fā)了,的亮點(diǎn)即整站化,包括提供更多強(qiáng)大的組件更容易編寫代碼默認(rèn)用開發(fā)自定義組件以及更快的運(yùn)行速度等。
前言
「本文假定讀者已經(jīng)有初級的前端開發(fā)知識,包括HTML、CSS。」
百度在一年前推出了稱為 MIP(Mobile Instant Pages)的前端開發(fā)組件,主要目的是加速移動(dòng)端網(wǎng)頁的顯示。MIP技術(shù)來源于谷歌推出的AMP技術(shù),但由于眾所周知的原因,百度決定自行開發(fā)一套和AMP類似的技術(shù),宣稱和AMP規(guī)范完全一致。
MIP由MIP-HTML、MIP-JS、MIP-Cache組成。用人話說,
MIP-HTML 是MIP對HTML的規(guī)范,包括禁用以防止頁面repaint、a標(biāo)簽強(qiáng)制要求href屬性等,具體 https://www.mipengine.org/doc... ;
MIP-JS 要求所有JS代碼需要以「MIP組件」的形式引入到頁面中,禁止直接寫JS。并且,在MIP所有的JS代碼都是異步加載的,再加上禁用各種CSS的hack、靜態(tài)資源固定大小等規(guī)范來減少頁面重繪,以此提高JS的運(yùn)行速度;
MIP-Cache,簡單說就是百度免費(fèi)提供的CDN,所有MIP頁的代碼都放在百度的CDN上,而且對于網(wǎng)頁中的靜態(tài)資源,比如圖片,都可以放在百度的CDN上,但由于百度對使用MIP-Cache技術(shù)的靜態(tài)資源的收錄時(shí)間不確定,所以我建議只對長期不變的靜態(tài)資源用緩存。
概覽應(yīng)用MIP技術(shù),按照百度的建議是直接開發(fā)一套MIP頁面,而不建議「改造」現(xiàn)有移動(dòng)端H5頁。
然而改造一下現(xiàn)有的頁面,成本顯然低得多。將一個(gè)頁面「MIP化」大概分為2步:
對于HTML代碼,按照MIP-HTML的規(guī)范進(jìn)行修改,去除或替換禁用的標(biāo)簽;
對于JS代碼,由于大部分JS是一些顯示邏輯(比如圖片輪播),不涉及具體的業(yè)務(wù),所以,開發(fā)者要在MIP組件列表(https://www.mipengine.org/doc... )中尋找合適的MIP組件直接替換掉頁面中原有的JS代碼;
注:如果頁面中的JS涉及必要的業(yè)務(wù)邏輯,則必須自行開發(fā) MIP自定義組件,并提交百度審核,通過后才能用。
愿意的話,還可以按照MIP-Cache的格式要求來緩存靜態(tài)資源。
以目前MIP技術(shù)的發(fā)展來看,MIP只適合于改造單個(gè)頁面,還無法應(yīng)用于整個(gè)站點(diǎn),因?yàn)楣俜組IP組件都比較簡單,只適用于類似新聞、論壇帖子頁之類的結(jié)構(gòu)簡單、特效簡單的網(wǎng)頁,對于存在復(fù)雜的交互邏輯,或是基于React之類框架的SPA頁面,不適合應(yīng)用MIP技術(shù),如果一定要用MIP的話,那需要去掉這些復(fù)雜的邏輯,只保留簡單的展示,相當(dāng)于重新開發(fā)一個(gè)頁面了。
不過呢,百度已經(jīng)在開發(fā)MIP 2.0了,MIP 2.0的亮點(diǎn)即「整站MIP化」,包括提供更多強(qiáng)大的MIP組件、更容易編寫JS代碼、默認(rèn)用Vue開發(fā)自定義組件以及更快的運(yùn)行速度等。
MIP頁面開發(fā)入門先來看看如何開發(fā)一個(gè)MIP頁面。
開發(fā)MIP頁,最重要的就是如何使用MIP組件。
為了方便開發(fā),首先,請按照 MIP-CLI 的文檔安裝好(https://github.com/mipengine/... ),進(jìn)入工作區(qū)文件夾,并新增一個(gè)頁面,命令是
mip add XXX.html
使用如下命令可以驗(yàn)證頁面是否符合MIP的要求:
mip validate XXX.html
如果需要運(yùn)行這個(gè)頁面,那么可以用這個(gè)命令
mip server
按 Ctrl+C 可以退出。提示一下,在瀏覽器中調(diào)試MIP頁時(shí),可以用開發(fā)者工具修改頁面分辨率,換成手機(jī)的分辨率。
使用 MIP-CLI 新建的頁面是這樣的:
其中、 是必須添加的標(biāo)簽,前者用于告知Spider當(dāng)前是個(gè)MIP頁;后者告知百度當(dāng)前MIP頁對應(yīng)的移動(dòng)端H5頁的地址(對應(yīng)的,在H5頁上需要 指明對應(yīng)的MIP頁地址),當(dāng)然,如果沒有對應(yīng)的H5頁,那么可以指向PC頁或自己。
引入的一個(gè)CSS文件和JS文件是MIP技術(shù)的基本庫文件,里面包含了MIP的核心代碼和幾個(gè)內(nèi)置組件。
基本規(guī)范對于所有標(biāo)簽,替換為
https://www.mipengine.org/exa...
這是一個(gè)最簡單的MIP組件,看上去和普通的HTML標(biāo)簽一樣,非常簡單,但有幾點(diǎn)需要注意:
1)MIP的組件大多支持多種布局,這里使用的是「responsive」,即響應(yīng)式布局,適合視頻、圖片等固定比例但真實(shí)大小不確定的資源;
2)「responsive」布局需要提供 width 和 height,但不需要提供單位,因?yàn)檫@里的寬和高僅用于確定比例,MIP會(huì)自動(dòng)給定真實(shí)大小。
還有 a標(biāo)簽強(qiáng)制要求href屬性等其他要求,具體看 MIP-HTML 規(guī)范,https://www.mipengine.org/doc...。
組件布局MIP組件支持以下幾種布局(https://www.mipengine.org/doc... ),具體要看各個(gè)組件的文檔。可以通過修改MIP組件標(biāo)簽中的layout屬性修改布局方式。
這里需要注意的是,大多數(shù)組件都有默認(rèn)的布局方式。
添加樣式MIP沒有對CSS做特別的限制(但是會(huì)自動(dòng)去掉一些性能極差的選擇器),也允許使用外鏈的方式引入CSS文件(雖然并不建議這么做,因?yàn)檫@樣引入的CSS文件通常非常大)。對于內(nèi)聯(lián)的CSS,需要使用 包裹。
試用更復(fù)雜的組件MIP組件的使用方法類似于Bootstrap的JS組件的使用方法,找到文檔,復(fù)制,粘貼,done……所以這里只提一個(gè)要點(diǎn):MIP官方提供的組件分為內(nèi)置組件、個(gè)性化組件和廣告組件,其中內(nèi)置組件只需要一開始自動(dòng)引入的 mip.js 就能運(yùn)行,而其他類型的組件均需要引入特定的腳本才能用。
因?yàn)榉浅:唵危赃@里我就以一個(gè)很簡單的個(gè)性化組件——mip-gototop為例,展示一下MIP組件的使用方法。
復(fù)制粘貼 gototop 組件的示例代碼;
在 mip.js 后添加 gototop 組件需要的JS文件。
隨便寫一些代碼把整個(gè)頁面撐的長一些,以便看出回頂部組件的效果。
最后看起來是這樣的:
接著可以使用上文中提到的 MIP-CLI 工具,mip server 命令運(yùn)行MIP服務(wù)器,從這個(gè)本地的服務(wù)器訪問剛寫完的MIP頁,就可以看到效果了。
以上就是絕大多數(shù)MIP組件的使用方法。
已有H5頁改造成MIP頁使用百度的官方MIP開發(fā)一個(gè)MIP并不難,那現(xiàn)有頁面改造成MIP頁就更簡單了,就三步:
使用 MIP-CLI 驗(yàn)證現(xiàn)有頁面(mip validate XXX.html),找出所有錯(cuò)誤;
修復(fù)代碼規(guī)范類的錯(cuò)誤,比如a標(biāo)簽缺了href屬性、存在標(biāo)簽等;
把用JS實(shí)現(xiàn)的特效換成MIP組件,主要包括回到頂部、圖片輪播、廣告等。
我在網(wǎng)上找到了這一套用AmazeUI寫的H5頁,簡單說一下改造的過程。侵刪。
先使用驗(yàn)證工具驗(yàn)證這個(gè)頁面,提示有這些錯(cuò)誤:
可以發(fā)現(xiàn)大多數(shù)錯(cuò)誤都可以很快解決。
然后可以發(fā)現(xiàn),頁面中有三塊JS實(shí)現(xiàn)的效果需要替換為MIP組件。分別是:
頂部的輪播圖片效果,需要替換為 mip-carousel;
回到頂部按鈕,需要替換為 mip-gototop;
超鏈接,mip頁之間跳轉(zhuǎn)需要用
至此也就完成了這個(gè)頁面的MIP化改造。
總結(jié)本文簡單介紹了MIP技術(shù)、MIP頁的開發(fā)過程、現(xiàn)有H5的MIP化改造等基本問題,后續(xù)的文章將更深入的討論MIP技術(shù),包括MIP自定義組件的開發(fā)、MIP 2.0等話題。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/52584.html
摘要:百度在一年前推出了稱為的前端開發(fā)組件,主要目的是加速移動(dòng)端網(wǎng)頁的顯示。不過呢,百度已經(jīng)在開發(fā)了,的亮點(diǎn)即整站化,包括提供更多強(qiáng)大的組件更容易編寫代碼默認(rèn)用開發(fā)自定義組件以及更快的運(yùn)行速度等。 前言 「本文假定讀者已經(jīng)有初級的前端開發(fā)知識,包括HTML、CSS。」 百度在一年前推出了稱為 MIP(Mobile Instant Pages)的前端開發(fā)組件,主要目的是加速移動(dòng)端網(wǎng)頁的顯示。M...
摘要:那百度為什么不和一樣用呢況且還是開源的。我想一個(gè)重要的原因是使用的需要調(diào)用官網(wǎng)的庫,用于控制資源加載緩存等功能這個(gè)恐怕是百度不愿意采用的一個(gè)核心原因,鑒于國內(nèi)的網(wǎng)絡(luò)環(huán)境偉大的,難免不讓人擔(dān)心這個(gè)庫那天被屏蔽了。 1.關(guān)于AMP 在移動(dòng)互聯(lián)網(wǎng)的時(shí)代,盡管網(wǎng)站響應(yīng)式設(shè)計(jì)可以滿足多屏(pc、手機(jī)、ipad等)瀏覽,但google在2015年10月推出了更快移動(dòng)頁面訪問速度的技術(shù)-Accele...
摘要:很多人都問過我,咖啡你的主題模板到底怎么改的。的改造非常簡單。今天就免費(fèi)給大家獻(xiàn)上改造方案。好了,直接進(jìn)入正題模板文件規(guī)范自己改,不多說。原文地址這是個(gè)技術(shù)文章,各位可以轉(zhuǎn)載哈。 很多人都問過我,咖啡你的MIP主題模板到底怎么改的。我就和zblog那些開發(fā)者交流了下。zblog的MIP改造非常簡單。今天就免費(fèi)給大家獻(xiàn)上改造方案。好了,直接進(jìn)入正題!模板文件MIP規(guī)范自己改,不多說。模板...
摘要:很多人都問過我,咖啡你的主題模板到底怎么改的。的改造非常簡單。今天就免費(fèi)給大家獻(xiàn)上改造方案。好了,直接進(jìn)入正題模板文件規(guī)范自己改,不多說。原文地址這是個(gè)技術(shù)文章,各位可以轉(zhuǎn)載哈。 很多人都問過我,咖啡你的MIP主題模板到底怎么改的。我就和zblog那些開發(fā)者交流了下。zblog的MIP改造非常簡單。今天就免費(fèi)給大家獻(xiàn)上改造方案。好了,直接進(jìn)入正題!模板文件MIP規(guī)范自己改,不多說。模板...
閱讀 1897·2021-11-17 09:33
閱讀 6494·2021-10-12 10:20
閱讀 2312·2021-09-22 15:50
閱讀 1799·2021-09-22 15:10
閱讀 632·2021-09-10 10:51
閱讀 638·2021-09-10 10:50
閱讀 3067·2021-08-11 11:19
閱讀 1789·2019-08-30 15:55