MIP是什么?
MIP (Mobile Instant Page - 移动网页加速器), 是一套应用于移动网页的开放性技术标准。通过提供MIP-HTML规范、MIP-JS运行环境以及MIP-Cache页面缓存系统,实现移动网页加速。
MIP主要由三部分组织成:
MIP HTML
MIP JS
MIP Cache
MIP HTML 基于HTML中的基础标签制定了全新的规范,通过对一部分基础标签的使用限制或功能扩展,使HTML能够展现更加丰富的内容;MIP JS 可以保证 MIP HTML 页面的快速渲染;MIP Cache 用于实现MIP页面的高速缓存,从而进一步提高页面性能。
MIP组成部分有哪些?
MIP HTML
MIP HTML 基于HTML基础规范进行了扩展,下面是一段简单的MIP HTML代码示例:
<!DOCTYPE html>
<html mip>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<link rel="stylesheet" type="text/css" href="https://mipcache.bdstatic.com/static/mipmain-v0.0.1.css">
</head>
<body>Hello World!</body>
<script src="https://mipcache.bdstatic.com/static/mipmain-v0.0.1.js"></script>
</html>
IP HTML 规范中有两类标签,一类是HTML常规标签,另一类是MIP标签。MIP标签也被称作 MIP HTML 组件,使用它们来替代HTML常规标签可以大幅提升页面性能。
例如,标签<mip-img>,它使得图片只在需要时才进行加载,减少了页面渲染时间,节省了用户的流量。
MIP JS
MIP JS 用于管理资源的加载,并支持上述MIP标签的使用,从而确保页面的快速渲染,提高页面各方面的性能。
MIP JS 最显著的优势是能够异步加载所有外部资源,整个页面渲染过程不会被页面中的某些元素阻塞,从而实现页面渲染速度的提升。
此外,MIP JS 还涵盖了所有iframe的沙盒、于资源加载前提前计算页面元素布局、禁用缓慢css选择器等技术性能。
MIP Cache
MIP Cache 是通过 CDN(Content Delivery Network) 服务器缓存mip页面的。用户在访问 MIP 页面的时候,请求首先会发到 CDN 服务器,如果页面存在,则从 CDN 返回,如果 CDN 上不存在,则会请求第三方服务器。同时 MIP Cache 服务器会主区页面缓存到 CDN 上。在使用 MIP Cache 时,MIP 页面所需要的所有静态文件和外部资源都会被缓存到 CDN 上,并且页面中的资源链接会被转换成相对地址,很大程度上提升了页面渲染速度。每一个 MIP 页面都会绑定一个验证系统,在页面进行渲染时,这种验证器可以直接在浏览器控制台中输出页面的错误;并且随着代码逻辑的变化,能够展示其对页面性能以及用户体验的影响。
MIP是怎么实现移动页加速的?
经过精心设计的JavaScript
为了去除臃肿的客户端脚本,MIP文件不允许自定义JavaScript;对一些强依赖JavaScript的功能(如:广告、统计和交互),MIP提供与MIP runtime兼容的封装好的组件来实现。
JavaScript 引用原则:
目前MIP不允许用户自定义JavaScript,需要用MIP 组件的形式引进来,从而确保安全性和性能表现
可以引用mip-iframe来引入实现部分富交互的功能,这样,即使开发时使用最影响性能的document.write,也不会影响主页面的渲染
MIP组件是开源的,允许开发者自定义功能组件,项目也将持续提供多样的组件,以适应不通的需求。
所有静态资源需要标明尺寸
在页面开发时,资源常常不会被设定宽高,特别是使用广告或者通过调用 `document.write() 注入的时候。由于资源大小不能确定,页面经常要进行反复重新的绘制;
现在,MIP要求将所有的资源(广告、图片、音频和视频)标明尺寸。当资源真正加载时,所有资源大小可以被立即推断出并迅速的用于计算页面布局,加载中的资源将无缝呈现,不必因为页面频繁更新布局而影响到用户的阅读体验。
不允许任何机制阻止页面渲染
开发者的任何自定义脚本,都需要用MIP的tag反馈给MIP,例如mip-ad、mip-iframe等,这些方式不会阻塞页面的layout和渲染。
控制外部资源加载
MIP runtime会控制外部资源的额加载来确保其高效性,从而使用户想阅读的内容尽快出现在屏幕中。
封装交互功能
MIP提倡网页能给用户直接简单的体验,但这并不意味着MIP限制了页面的生动和有趣。MIP runtime提供了高度优化的被封装的JavaScript,开发者无需投入过多精力去实现复杂的交互功能。
只允许inline的css
css的加载,会阻止页面的渲染,css内联可以减少客户端的开销。
只允许GPU加速的动画
MIP只允许用transforms和opacity来完成动画效果,当动画能在GPU上执行时,仅触发渲染层合并。
MIP 缓存
MIP另一个重要的意义在于能够帮站长加速网页,百度将会把MIP网页缓存到百度CDN中。只要符合MIP标准,都可以使用MIP缓存。
MIP组件有哪些?
内置组件
图片组件(mip-img)
视频组件(mip-video)
mip-pix组件(mip-pix)
扩展通用组件
轮播组件(mip-carousel)
iframe组件(mip-iframe)
个性化组件
推荐组件(mip-recommend)
分享组件(mip-share)
app下载组件(mip-appdl)
百度统计组件(mip-baidu-stats)
个性化广告组件 (mip-ad-customize)
广告组件
广告组件(mip-ad)
MIP常见问题汇总
阅读MIP页对系统、终端、浏览器是否有要求?
没有要求。
MIP页能支持的广告是什么样的?
目前MIP支持站长自定义的横幅广告、视频广告、H5广告,同时也支持一些第三方广告系统。
MIP页是否支持网页内容的统计?
站长可以使用百度统计,或者谷歌统计、cnzz等第三方统计,进而追踪页面浏览量,停留时长等基本信息。
MIP页能否帮助站长提高搜索权重?
不会。MIP页和标准网页在搜索排序上是一致的。搜索权重包含多种因素,而我们增加因素Mobile Friendly 对权重的影响。
MIP与Mobile Friendly是什么关系?
Mobile Friendly 是用于评估个页面在手机端的浏览体验,评估标准包括内容易读性,功能易用性,广告面积等。 而MIP是一套解决方案,不仅可以提升移动端浏览体验,还会解决页面加速和安全性的问题。 所以应用了 MIP 的页面能够提升一定的移动友好性,但不一定能达到Mobile Friendly的要求。
MIP是否会开源?
会,MIP是一项持续的开源计划
MIP有什么推广计划?
目前MIP已覆盖百度搜索资讯feed流,后续会覆盖aladdin、自然结果收录的站点。同时,百度搜索会对使用MIP的站点有优待。
MIP对什么样的内容有较好的效果?
目前对内容浏览类的站点支持效果极佳。后续,随着不断丰富的组件开发,MIP可以支持更多类型的站点。
站长构建一个MIP的成本有多少?
如果是新建站点,没有额外的支持MIP成本,按照MIP规范开发即可;
如果是已有的页面,需要具体看页面生成方式,模板形式的就是一次性改造成本。降低站点迁移成本是MIP后续工作的目标之一,不排除MIP推出页面转换工具。
MIP可以支持什么类型的服务?是否支持支付功能?
MIP可以看作是一个页面生成技术。后续会提供支付组件。
其他的第三方广告商如何加入到MIP项目?
MIP是一个开放的项目,支持各广告商提交自有的广告组件。
内容提供商如何加入到MIP项目?
纯内容提供商可以走百度CMS接入的方式,直接提供内容。
内容提供商能否出售自己的广告位?
需要定义是哪种“广告位”,以及内容提供商如何接入百度。MIP会根据不同类型的广告形式给出最优的解决方案。
最近百度站长平台悄悄的推出了最新的MIP移动网页加速器,余斗也是看到了之后才关注到MIP的,这应该也是移动优化的一个好的方法,大家可以多研究研究。
MIP引入
MIP详情
套路很深,不支持下载!