本帖最后由 truthrudy 于 2016-1-7 12:38 编辑
Chrome 47 Beta最新 Chrome Beta 渠道版支持协作式多任务处理,支持添加到主屏幕的站点的启动界面,提供灵活的桌面通知、安全修复等众多特性。除非另外注明,否则,下面介绍的更改均适用于 Chrome for Android、Chrome OS、Linux、Mac 和 Windows。
1.Android 上的启动界面移动设备的性能通常低于台式设备,这意味着,加载应用可能需要几秒钟的时间。启动界面允许应用在加载时显示对用户有意义的内容,从而提升性能感受。新版 Chrome for Android 允许 Web 应用在从 Android 主屏幕启动某个站点时显示启动界面。即使在 Chrome 自身仍在加载过程中,也会立即显示启动界面。开发者可以通过在 Web 应用清单文件中设置名称、图标、背景色和通知栏颜色来定制启动界面。一旦 Web 应用开始绘制屏幕,启动界面即会消失,从而提供了更顺畅的加载体验。
2.使用 requestIdleCallback() 实现协作式多任务处理
要实现每秒 60 帧的屏幕刷新率,开发者必须猜测图形渲染之类的性能关键型任务何时能完成,并使用计时器来安排这些任务。不幸的是,开发者无法保证低优先级的任务不会影响性能,因为滚动之类的事件总是无法预测的。现在,开发者可以使用 requestIdleCallback() 将任务明确设置为在空闲时运行。使用 requestIdleCallback() 注册的函数被指定截止时间并可在到达此限制之前返回,从而避免卡顿。该函数也可注册另一 requestIdleCallback() 方法,以便在下一空闲期间继续工作。
3.自动清除通知自 Chrome 42 后,服务工作线程即启用推送通知。社交媒体或电子邮件之类的站点可能会生成大量的推送通知,这些通知会占用屏幕空间,并且除非在发布之后立即被用户查看,否则也不是特别要紧。新版 Chrome 现在允许开发者配置自动清除桌面通知,从而改善此类通知的体验。站点可以设置 NotificationOptions.requireInteraction,以指示通知应保持显示在屏幕上,直至用户清除它为止。 NotificationOptions.requireInteraction
4.此版本中的其他更新
Array.prototype.includes() 简化了检查数组成员的语法。 其余参数语法允许使用数组调用带有无限自变量的函数。 Cache.matchAll() 简化了对缓存的批量搜索,也无需使用 polyfill。 RequestInit.referrer 允许服务工作线程捕获请求,以匹配原始引用站点。 新的 Navigator.MediaDevices 接口允许开发者枚举连接的媒体设备,例如音频输出。 导航 FetchEvents 中请求属性的更新值可以更好地符合规范要求。 MouseEvent.getModifierState() 令 MouseEvent 和 KeyboardEvent 上的输入处理更强大,更一致。 开发者现在可以使用 UIEvent.sourceCapabilities 和 InputDeviceCapabilities.firesTouchEvents 更准确地检测输入设备能力。 删除了几种 SVG 方法,包括针对几个元素的像素转换和 hasExtension() 方法。 现已禁用带有前缀的加密媒体扩展,改用无前缀的 EME,后者功能更丰富,并且更符合规范要求。 在绘制选择项时,Chrome 不再突出显示内容之间的间隔。 通知中心已从 Windows、Mac 和 Linux 中删除,以使 Chrome 更简洁。
原文来自【谷歌网络安全全球博客】: http://blog.chromium.org/2015/10/chrome-47-beta-idle-time-work-splash.html
|