写点什么

Chrome 39 新增 Beacon API 和 ES6 Generator 支持

  • 2014-12-04
  • 本文字数:1287 字

    阅读完需:约 4 分钟

谷歌的 Chrome 团队发布了Chrome 39 的稳定版本,更新包括Web 应用程序Manifest 规范、Beacon API 和ES6 Generator 支持。

Chromiun 仪表板页面介绍,Web 应用程序 Manifest 规范定义了“一个基于 JSON 的 Manifest 文件”:

……它为开发人员提供了一个集中存放应用程序相关元数据的地方。这包括,但不限于,Web 应用程序名称、图标链接以及用户启动 Web 应用程序时的首选 URL。

Manifest 还允许开发人员指定 Web 应用程序的默认方向以应用程序在用户代理上的显示方式(比如全屏)。

Chrome 39 的稳定版本还引入了 Beacon API,并将其定义为“一种互操作方法,站点开发人员可以用它从用户代理向Web 服务器传输少量的HTTP 数据。”

在为网站 HTML5Rocks 写的文章《在 Chrome 39 中发送 Beacon 数据》中,谷歌开发者计划工程师 Ewa Gasperowicz 详细描述了 Beacon。

按照 Gasperowicz 的说法,使用 Beacon,

开发人员可以从浏览器向 Web 服务器异步发送数据有效载荷较小的 HTTP 请求,而不会延迟页面 unload 事件中其它代码的执行或者影响下一步页面导航的性能。

navigator.sendBeacon()方法会尽快将需要浏览器传输的数据存入队列,而不会降低导航速度。如果浏览器能够将待传输的数据存入队列,那么该方法就会返回 true,否则,返回 false。

也是在网站 HTML5Rocks 上,谷歌开发者关系工程师 Jeff Posnick 在文章《 Generator 使用技巧》中将 Generator 描述为:

创建迭代器的特殊函数,而迭代器是有 next()方法的对象,调用该方法可以获取一个值。

在 Generator 函数里,关键词 yield 为 next()方法提供值。使用 yield 暂停 Generator 函数的执行,保留状态直到 next()方法被再次调用,这时,代码会重新启动继续运行,直到生成了另外一个值(或者 Generator 函数终止)。

通过支持 ES6 Generator,Chrome 允许开发人员创建迭代器,它在生成一个值后会暂停执行,并在被调用时恢复。

在博文《 Chrome 39 Beta 测试版:JS Generator、Animation Playback Control 及 WebApp Manifest 》中,谷歌软件工程师 Mounir Lamouri 写到,这“极大地简化了开发异步代码的过程,并且减少了对回调函数的依赖。”

不过,在 Reddit 上关于 Chrome 39(现在已经稳定)提供 Generator 支持的讨论中,并不是社区里的每个人都完全清楚 Generator 的优点。用户 piglet24 问到,“对于已经是异步,并且使用了回调或Promises 的代码,我不知道Generator 能如何对其进行简化。这看上去与C#中的yield return 非常相似。”

用户 voidvector 回复到:

我觉得你了解 C#中的 async/await。

yield 和 await 都是暂停当前函数执行的语法,并且允许上述函数稍后在相同的上下文中恢复。因此,你可以编写一个(协程)框架,使用 yield 实现 await,反之亦然。“暂停函数执行并在稍后恢复”这种情况用一个抽象概念描述的话,称为“延续性(Continuation)”。yield 和 async/await 都是它的一种形式。

这里有一个Generator 的演示示例。

Chrome 39 还支持 Mac 64 位,并包含若干安全方面的更新。Chrome 40 的稳定版本预计在 2015 年 1 月发布。

参考英文原文:**** Chrome 39 Brings Beacon API and ES6 Generators

2014-12-04 06:312519
用户头像

发布了 1008 篇内容, 共 378.7 次阅读, 收获喜欢 342 次。

关注

评论

发布
暂无评论
发现更多内容

灵活、高效、可靠,华为云桌面想用户所想!

与时俱进的时代

华为云桌面——云上办公安全高效,高清流畅

与时俱进的时代

「实操」适配 NebulaGraph 新版本与压测实践

NebulaGraph

图数据库

超高清设计师云工作站,设计可以更高效

清欢科技

有奖征文活动:从 RTC 到 RTE,从音视频到「实时万象」!

声网

人工智能 音视频

数字云办公连续7年领跑,华为云桌面优势突显!

科技之光

数字化办公?选云桌面就对了!

科技之光

云办公成趋势,华为云桌面全方位保障企业安全

科技之光

Verilog模块例化

芯动大师

Verilog语法 Verilog例化模块 Verilog教程

流畅高清,华为云桌面助力设计师高效办公!

与时俱进的时代

华为云会议好评如潮的背后,竟然暗藏这么多黑科技!

科技说

华为云桌面,开启云上高效办公之旅!

清欢科技

重磅 | 九科信息入选“第一新声”2022年中国RPA行业优秀厂商图谱

九科Ninetech

简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享

北京好雨科技有限公司

开源创新 源起潮“蜥”——龙蜥社区走进浪潮信息 MeetUp 即将开幕

OpenAnolis小助手

云原生 Meetup 龙蜥社区 浪潮信息 开源活动

HTTP的状态码

穿过生命散发芬芳

HTTP 12月月更

上云合作伙伴,华为云桌面致力打造优质云上办公生态

与时俱进的时代

存量时代下 用低代码开发平台提升你的CEM

力软低代码开发平台

集团型企业主数据管理框架、方法

用友BIP

超高清设计师云工作站,为设计企业护航

清欢科技

Go Gorm Sqlite3 CreateInBatches 报错:too many SQL variable 排查与解决

非晓为骁

Go gorm sqlite3 CreateInBatches

华为云会议助力政企用户提升沟通效率

科技说

低成本、高效率!华为云桌面助力企业数字化转型

清欢科技

居家办公正确的打开方式——华为云桌面

与时俱进的时代

What's new in dubbo-go v3.0.4

apache/dubbo-go

dubbo Dubbo服务 Dubbo网关

webAssembly on server side 的应用场景

磊吐槽

云原生 webassembly

云上办公,且看华为云桌面如何加速企业数字化发展之路?

科技之光

华为云会议,总有一种场景满足你的需求

科技说

安全灵活,华为云桌面成为数字化办公最佳搭档

清欢科技

云上办公,还得是华为云桌面的一站式云上工作站

科技之光

2022-12-21:uifd/ui-for-docker是docker的web可视化工具。请问部署在k3s中,yaml文件如何写?

福大大架构师每日一题

Docker 云原生 k8s k3s 福大大

Chrome 39新增Beacon API和ES6 Generator支持_JavaScript_James Chesters_InfoQ精选文章