6月,Chrome团队宣布Chrome 52进入Beta通道,Chrome 52给我们带来了哪些新的特性呢?
CSS容器封闭
网页的交互体验一直是网页的基石,但是随着网页的复杂,页面的渲染时间也随之增加。为了加快网页渲染速度,Chrome采用增量渲染网页上被修改的部分,既网页元素动态修改之后,Chrome只会渲染受影响部分而非整个网页。但是,由于页面元素可以通过CSS设置将其展示在父容器之外,这意味了一个元素的改变可能会影响页面的任何位置。因此Chrome的增量渲染也需要考虑此因素,这可能会大大增加需要重新渲染的元素数量。
在新版本中,Chrome增加了对contain属性的支持,该属性允许开发者阻止元素内容超出元素的边界。此时,当该元素被修改时,Chrome在渲染时会忽略该在该元素父节点以外的元素,以提高渲染速度。
性能观察API
对于网页应用来说,收集真实用户打开页面的时间,可以进行性能问题诊断,提升用户体验。之前开发者可以通过Chrome开发者工具查看本地访问的时间,但是无法用来获取真实用户打开网页的耗时。最新版本的Chrome支持了性能观察API,使得开发者可以方便的收集真实用户度量数据。
性能观察API相比于性能时间线API(Performance Timeline),开发者可以声明和注册自己关心的度量指标,而无需轮训更新结果。
Service Worker API支持流响应
流响应可以让浏览器在整个HTML传输过程中就逐步开始渲染。这对于大型网页非常有效,能够加快渲染速度,同时提高用户体验。新版的Chrome对于Service Worker API做了提升,使其也能够支持流响应。网页可以使用Streams API通过传入ReadableStream对象构造一个支持流读取的Response对象,这样就可以流式处理从服务器端传输过来的数据了。
网页推送协议支持VAPID
消息推送API的使用,将网页应用的体验提升了一次层次。但是开发者需要为消息推送设置专有推送消息,并且可能需要为不同浏览器定制不同的API。Chrome现在支持VAPID(Voluntary Application Server Identification,自主应用服务器标识),它是一种为站点和网页之间推送协议增加授权的开源标准。
其他特性
- 当显示模态对话框时,Chrome将停止动画;
- 新增对Alternative Services的支持,客户端可以增加额外的来源(origins),以简化协议升级等交互;
- ImageBitmaps对象可以在构造时使用ImageBitmapOptions对象而简化构造流程。
- 页面上可以通过ImageBitmap.close()函数释放ImageBitmap占用的内存。
- 在跨域iframe中,触摸手势将不会触发弹出框,除非关联了一个tap事件,以避免滚屏时意外触发弹出框。
- Android版本的Chrome中,只有安全的源才能创建和删除含有安全标识的Cookie。
- 最新版本的Chrome支持meter元素使用-webkit-appearance:none样式,以清除默认样式,更好的支持该元素的自定义样式。
- 内容安全策略(Content Security Policy,CSP)的unsafe-dynamic表达式支持单次使用或者基于散列表的白名单,以验证JavaScript脚本,使得防止跨站攻击变得容易。
- Fetch API支持为Request对象设置referer策略。
详细变更参见提交日志。