首页 >web前端 >js教程 >什么是Chrome 39中的新内容

什么是Chrome 39中的新内容

William Shakespeare
William Shakespeare原创
2025-02-20 11:16:11452浏览

What's New in Chrome 39

Chrome 浏览器虽然已经问世六年,但在版本号上却正迅速步入成熟期。Chrome 39 现已发布,您可能已经安装了它。此版本包含一些不错的全新功能……以及一两个略显可疑的补充。

ECMAScript 6 生成器

生成器是使用 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

新的 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 动画控制

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 应用清单

不要与应用程序缓存清单混淆,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 沉浸式模式

在 Windows 7 上切换到沉浸式模式会使 Chrome 的行为有点像 Windows 8 全屏 Metro 应用程序。奇怪的是,它会在 Windows 任务栏上方放置一个类似 Chrome OS 的半透明任务栏——带有自己的开始按钮和时钟。

为什么?如果 Windows 7 用户想要 Windows 8 体验,他们可以升级。但是,许多 Windows 7 用户选择坚持使用该操作系统是有原因的:他们不想要 Windows 8!

我还对 Google 坚持将 Chrome OS 小部件偷偷添加到其他操作系统感到困惑。这里和那里的 Chrome 应用图标是可以的——但复制本机功能毫无意义。也许他们希望吸引人们使用 Chrome OS,但惹恼他们不会有帮助。

其他更新

还有一些较小的功能……

  • 您现在可以安装 Play 商店中的免费 Chrome 应用,无需登录。
  • 在高 DPI/Retina 屏幕上,scrollTopscrollLeft 现在返回像素的分数。如果您认为像素完美很糟糕,请等待客户开始要求亚像素完美!
  • 现在可以编辑保存的密码。
  • 现在,Mac OS 上仅提供 64 位版本的 Chrome。
  • SHA-1 加密正在逐步淘汰,取而代之的是 SHA-2。
  • 已添加对菜单内扩展按钮图标的实验性支持(在 about:flags 中设置 启用扩展工具栏重新设计)。

尽管添加了一些有问题的功能,并且 Firefox 也赶上了部分功能,但 39 版本仍然是一个很棒的更新。Chrome 仍然快速、稳定,并且是近一半网络用户的首选浏览器。推荐使用。

以上是什么是Chrome 39中的新内容的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn