Chrome 浏览器虽然已经问世六年,但在版本号上却正迅速步入成熟期。Chrome 39 现已发布,您可能已经安装了它。此版本包含一些不错的全新功能……以及一两个略显可疑的补充。
生成器是使用 function*
声明的特殊函数,用于创建迭代器。迭代器是一个具有 next()
方法的对象,调用该方法以返回一个值。生成器函数使用 yield
语句提供序列中的下一个值。
Arunoda Susiripala 在《JavaScript 生成器和防止回调地狱》中提供了一个基本的示例:
<code class="language-javascript">function* HelloGen() { yield 100; yield 400; } var gen = HelloGen(); console.log(gen.next()); // {value: 100, done: false} console.log(gen.next()); // {value: 400, done: false} console.log(gen.next()); // {value: undefined, done: true}</code>
Chrome、Opera 和 Firefox 31 均支持 ECMAScript 6 生成器。
新的 Beacon API 允许您将数据发送到服务器,而无需等待响应。请求会被排队,浏览器会在第一时间发送这些请求,但重要的是——它不会延迟当前页面的卸载或下一页面的加载。
navigator.sendBeacon()
会接收一个 URL 和数据(可能是字符串或 FormData 值)。通常,它可用于传输统计信息,例如:
<code class="language-javascript">navigator.sendBeacon('/log', 'page-unloaded');</code>
如果浏览器成功排队了 Beacon 请求,则该方法返回 true
。我不确定如果返回 false
可以做什么,但 Beacon 不应用于基本功能或消息传递。
Chrome、Opera 和 Firefox 31 均支持 Beacon API。
Web 动画已在 Chrome 36 中推出。其理念是允许从 JavaScript 中进行简单的类似 CSS3 的关键帧和动画声明,例如:
<code class="language-javascript">var myanimation = myelement.animate([ { color: "#f00" }, { left: "20em" }, { transform: "rotate(180deg)" } ], { duration: 1000, iterations: 1, delay: 0 });</code>
其优势在于,您可以根据用户输入或其他条件控制和同步播放。Chrome 39 添加了播放方法,例如 play()
、pause()
、reverse()
、finish()
(将动画置于其最终状态)和 cancel()
(清除所有效果)。
可以将 Web 动画视为简单的 CSS3 动画和使用 requestAnimationFrame
和您自己的计时函数的复杂 JavaScript 全帧控制之间的折衷方案。对于一般的网页效果来说,它可能有点过分,但对于游戏来说又不够强大。应用程序和演示文稿可能是不错的用例?
目前只有 Chrome 和 Opera 浏览器支持 Web 动画。Firefox nightly 版本中提供了支持,并且可以使用 polyfill,但该技术在一段时间内不会稳定。
不要与应用程序缓存清单混淆,Web 应用清单是一个 JSON 文件,您可以在其中放置元数据,例如名称、起始地址、图标、显示模式、方向等。
您需要在 HTML 头部添加一个链接:
<code class="language-html"><link rel="manifest" href="manifest.json"></code>
以及清单文件本身,例如:
<code class="language-javascript">function* HelloGen() { yield 100; yield 400; } var gen = HelloGen(); console.log(gen.next()); // {value: 100, done: false} console.log(gen.next()); // {value: 400, done: false} console.log(gen.next()); // {value: undefined, done: true}</code>
这最终意味着我们可以从每个页面的顶部删除 57 个 iOS 图标大小的替代方案……假设 Apple 决定在 Safari 中实现这项技术!
跨浏览器支持参差不齐。Firefox 将清单用于其市场,但属性名称似乎存在一些差异。
在 Windows 7 上切换到沉浸式模式会使 Chrome 的行为有点像 Windows 8 全屏 Metro 应用程序。奇怪的是,它会在 Windows 任务栏上方放置一个类似 Chrome OS 的半透明任务栏——带有自己的开始按钮和时钟。
为什么?如果 Windows 7 用户想要 Windows 8 体验,他们可以升级。但是,许多 Windows 7 用户选择坚持使用该操作系统是有原因的:他们不想要 Windows 8!
我还对 Google 坚持将 Chrome OS 小部件偷偷添加到其他操作系统感到困惑。这里和那里的 Chrome 应用图标是可以的——但复制本机功能毫无意义。也许他们希望吸引人们使用 Chrome OS,但惹恼他们不会有帮助。
还有一些较小的功能……
scrollTop
和 scrollLeft
现在返回像素的分数。如果您认为像素完美很糟糕,请等待客户开始要求亚像素完美!尽管添加了一些有问题的功能,并且 Firefox 也赶上了部分功能,但 39 版本仍然是一个很棒的更新。Chrome 仍然快速、稳定,并且是近一半网络用户的首选浏览器。推荐使用。
以上是什么是Chrome 39中的新内容的详细内容。更多信息请关注PHP中文网其他相关文章!