尽管已步入第六个年头,Chrome 的版本号仍然大踏步的向中年迈进。Chrome 39 已经发布,说不定你都装上了。它有一些很好的新功能,以及一两处令人生疑的改动。
生成器是以 function*
声明,能生成迭代器的特殊函数。迭代器是一个对象,它具有 next()
方法,在调用时会返回一个值。生成器函数使用 yield
语句向序列提供下一个值。
Arunoda Susiripala 在《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}
Chrome、Opera 和 Firefox 31 以上版本均支持 ECMAScript 6 生成器。
新的信标 API 使得你能够在无需等待回应的情况下向服务器发送数据。请求由浏览器排队,尽可能快的发送。然而——重要的是——它并不会对释放当前页面或加载下一页面造成延迟。
navigator.sendBeacon()
可传入 URL 和数据——可能是字符串或表单数据值。通常它可以用来传输统计信息,比如:
navigator.sendBeacon('/log', 'page-unloaded');
如果浏览器排列信标请求队列成功,该方法会返回 true
。我不知道返回 false
时你能做什么,但信标不应用于基本的功能或消息。
Chrome、Opera 和 Firefox 31 以上版本均支持信标 API。
Chrome 36 引入了 Web 动画。这能让 JavaScript 完成类似 CSS3 的关键帧和动画声明,比如:
var myanimation = myelement.animate([
{ color: "#f00" },
{ left: "20em" },
{ transform: "rotate(180deg)" }
], {
duration: 1000,
iterations: 1,
delay: 0
});
它的优点是你可以根据用户输入或其他条件控制和同步播放。Chrome 39 增加了 play()
、pause()
、reverse()
、finish()
(把动画置为最终状态)和 cancel()
(清除全部效果)等播放方法。
可以把 Web 动画看成是简单的 CSS3 动画与使用 requestAnimationFrame
和自定义时序函数的复杂 JavaScript 全帧控制之间的一种折衷。这对于一般的网页效果可能是绰绰有余,但对游戏来说还不够强大。应用程序和演示可能是很好的用例?
目前仅 Chrome 和 Opera 支持 Web 动画。Firefox 每夜构建版本也提供支持,并且有 polyfill 可用,但技术暂时还不稳定。
别跟应用程序缓存清单搞混了,Web 应用程序清单是一个可以存放名称、起始地址、图标、显示模式、方向等元数据的 JSON 文件。
你会在 HTML 的 head
中引入一个 link
:
<link rel="manifest" href="manifest.json">
清单文件的内容大概是这样的:
{
"name": "My Application",
"icons": [{
"src": "icon/lowres",
"sizes": "64x64"
}, {
"src": "icon/small",
"sizes": "64x64"
}, {
"src": "icon/hd_hi",
"sizes": "128x128",
"density": 2
}],
"start_url": "/index.html",
"display": "fullscreen",
"orientation": "landscape"
}
这意味着最终我们可以移除所有页面顶部的 57x57 的 iOS 图标……假设苹果决定在 Safari 中实现这项技术!
跨浏览器的支持尚不完整。Firefox 在其 Marketplace 中使用了清单,但属性名似乎有所不同。
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 仍然很快,很稳定,占据了浏览器市场的半壁江山。推荐。
扫码关注w3ctech微信公众号
“Firefox nightlies”翻译成“Firefox 每夜构建版本”,NB
顶楼上
“每夜构建版”是一个目前普遍采用的译法,虽然我个人觉得也很难听……
共收到3条回复