OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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:312492
用户头像

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

关注

评论

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

如何快速建立商业智能系统?华为云告诉您!

科技之光

【12.23-12.30】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

启科量子部署工具 Runtime 正式开源

启科量子开发者官方号

部署 量子

2022,我们追逐群星,也在追逐AIGC的无尽可能

脑极体

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

钟奕礼

程序员 Java 面试 Java、 java 编程

Pg数据库日常维护操作指南

i查拉图斯特拉如是说

数据库 postgresql PgSQL

2022年最全大厂面试真题解析:java集合+spring+并发编程+MyBatis

钟奕礼

程序员 Java 面试 Java、 java 编程

开源全球公司贡献 49 名,涛思数据荣登 2022 中国开发者影响力年度榜单

TDengine

tdengine 时序数据库

墨菲安全软件供应链安全产品v3.0正式公测之产品特性简介及用户升级说明

墨菲安全

软件成分分析 开源安全 墨菲安全 软件供应链安全

华为云CDN加速服务,引领企业数字化发展潮流!

路过的憨憨

华为云CDN提升网站响应速度,让下载快人一步

路过的憨憨

既要速度与激情,也要稳定和安全,华为云CDN让你速度和安全兼得

路过的憨憨

我坦白→低代码功能我有,SQL练习题、数据可视化、数据填充助你高效

非喵鱼

sql 低代码 可视化 eCharts 数据库·

Flink Shuffle 3.0: Vision, Roadmap and Progress

Apache Flink

大数据 flink 实时计算

对标阿里P7:高并发+Nginx+微服务+消息中间件+Netty+Redis+MySQL

程序知音

Java 数据库 JVM 高并发 后端技术

「复享光学」用深度光谱技术推动光与电的变革

硬科技星球

AI for Science的上半场:人工智能如何重新定义科学研究新范式?

脑极体

这88道阿里高级岗面试题,刷掉了80%以上的Java程序员

钟奕礼

编程 程序员 Java 面试 Java、

蚂蚁金服Java研发岗二面:说说HashMap 中的容量与扩容实现

钟奕礼

程序员 Java 面试 Java、 java 编程

恭喜 KubeVela 获得中国开源云联盟 2022 “优秀开源项目”

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

刷完200+大厂Java真题手册,成功拿到阿里,京东,美团的offer

钟奕礼

程序员 Java 面试 Java、 java 编程

Dubbo 3 之 Triple 流控反压原理解析

Apache Dubbo

Java 开源 微服务 gRPC dubbo

接口自动化测试不想写代码?这款工具强烈推荐

叶小柒

测试 Postman

备受企业青睐的华为云CDN优势到底在哪?

路过的憨憨

金融投资不靠谱?投资者哭诉投资建信信托亏损

EOSdreamer111

数字化转型如何更方便?华为云大数据BI解决方案来了!

科技之光

暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作

RayLink远程工具

远程控制软件 远程办公软件 远控软件 RayLink

建木v2.6.2发布

Jianmu

开源 DevOps 持续集成 低代码 CI/CD

云原生、20.3k Star......时序数据库 TDengine 的 2022 年精彩纷呈

TDengine

数据库 tdengine 开源 时序数据库

华为云CDN,助力安全企业下载服务,更好提升用户体验

路过的憨憨

10 万字节Spring Boot +redis详细面试笔记(带完整目录)免费分享

钟奕礼

程序员 Java 面试 Java、 java 编程

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