谷歌的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月发布。\
Chrome39稳定版发布,引入Web应用程序Manifest规范、Beacon API和ES6 Generator支持。Manifest规范帮助开发者集中管理应用元数据;Beacon API允许异步发送小量HTTP数据而不影响页面卸载性能;ES6 Generator简化异步代码编写。
1356

被折叠的 条评论
为什么被折叠?



