MIP 是用 CDN 做加速的么?准确答案是:是,但不只是。
MIP 全称 Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案。MIP 从前端渲染和页面网络传输两方面进行优化,杜绝页面渲染中的阻塞问题,提升页面展现速度。
页面渲染耗时与 MIP 加速原则
页面渲染耗时主要分为以下三类:**DNS 解析耗时,网络传输耗时,浏览器渲染重绘耗时 **。
MIP 加速的基本原理就是减少各个步骤的耗时:
为减少 DNS 解析,MIP-Cache 将静态文件以相对路径储存在百度 CDN 中;
为减少网络传输耗时,MIP-JS 控制静态资源的按需加载,MIP-Cache 系统优先从 CDN 读取文件;
为减少浏览器渲染重绘耗时,MIP-HTML 对<img>
,<video>
等造成浏览器重绘的标签进行了封装控制。 下文将对 MIP 的三大组成部分 MIP-HTML, MIP-JS, MIP-Cache 进行详细介绍。
MIP-HTML 组件加速原理
MIP-HTML 规范中有两类标签,一类是 HTML 常规标签,另一类是 MIP 标签(MIP-HTML 组件)。在 MIP 规范中,类似<img>
等会引起浏览器重绘的标签应被替换成<mip-img>
, 利用懒加载和按需加载提高页面的渲染速度。
MIP-HTML 除了对浏览器原生标签的封装,还有一类自定义交互组件。比如图片轮播组件,表单组件,分享组件等。这些组件依赖 MIP-JS 和自身脚本即可运行,不需要引用第三方库。引用 MIP 自定义组件的而好处在于,页面开发时无需引入 jquery,bootstrap 等体积庞大的库,减少页面发送的网络请求及传输时间,加快网页的传输和渲染。
MIP-JS 加速原理
MIP-JS 是 MIP 的运行环境,接管了 MIP 页的生命周期,脚本加载及页面渲染。具体来说,MIP-JS 包括基础类引入(AMD),内置组件加载(mip-img),外置组件管理(组件 css 插入)以及组件布局管理(解决布局兼容性问题)。
MIP-JS 选择使用精简的基础类,尽量减少网络传输时间;内置优秀的组件,在不阻塞浏览器渲染的前提下提供最好的交互体验;提供组件布局管理,预先为组件设定宽高,避免组件加载后的浏览器重布局。
MIP-Cache 缓存加速原理
MIP-Cache 通过 CDN(Content Delivery Network) 服务器缓存静态 MIP 页面。当用户访问 MIP 页面时,请求首先会发到 CDN 服务器,如果页面存在,则从 CDN 直接返回静态页面;如果页面不存在,则会请求第三方服务器。返回的页面的同时加入 MIP-Cache。
在使用 MIP-Cache 时,MIP 页面引用的所有静态文件和外部资源都会被替换成相对地址,缓存到 CDN 上。尽可能减少了 DNS 解析时间和网络请求时间。
总的来说,MIP 除了 CDN 加速,还针对浏览器渲染和网络加载做了优化。改版网站的数据表明,页面加载速度提升了 30-80%。更快的打开速度意味着更少的用户等待和放弃,更好的用户体验。欲了解更多详情,欢迎到 MIP 官网,与我们一同建立秒开的移动页面。