为了让所有 Web 开发人员了解 Firefox 中的新功能和改进,并能够在早期阶段进行测试和试验,以下是最新的 Firefox 开发亮点。这是我们 Bleeding Edge 系列的一部分,大多数示例仅在 Firefox Nightly 中有效(并且可能会有所改变)。
OMTC(“非主线程合成”)取得良好进展
OMTC 的直接优势是更具响应性的用户界面。渲染网页是一个复杂的过程,涉及不同的操作,例如计算页面布局、下载不同的资源、解码图像或执行 JavaScript 代码。
其中一些操作在同一个线程中执行。其中一些在主线程中执行,大多数用户界面交互都在这里处理。如果此主线程中的操作需要时间,它将阻塞 UI 并使 UI 感觉迟钝。
因此,我们希望将尽可能多的操作移到另一个线程中。我们要移动的操作之一称为“合成”。它负责“扁平化”页面。页面由层组成。例如,固定背景的层,文本的层和视频元素的层。扁平化页面,合成它,将把这些层合并成一个纹理。
在 Firefox OS 和 Firefox for Android 中,合成操作是在不同的线程中完成的。我们正在取得一些进展,使 OMTC 适用于 Firefox 桌面版。
要深入了解此主题,我们建议您阅读 非主线程合成 (OMTC) 及其重要性。
可视性 API 已取消前缀
您可以使用 页面可视性 API 了解网页何时可见或处于焦点状态。使用选项卡式浏览,任何给定网页都有可能在后台,因此对用户不可见。
当用户最小化网页或移动到另一个选项卡时,API 会发送一个关于页面可见性的 visibilitychange
事件。您可以检测该事件并执行一些操作或以不同的方式进行。例如,如果您的 Web 应用程序正在播放视频,它会在用户查看另一个浏览器时暂停,并在用户返回选项卡时恢复播放。用户不会失去视频中的位置,并且可以继续观看。
为此,对于 mozHidden
和 mozvisibilitychange
,不再需要 moz
前缀。
CSS 改进
我们总是需要更多 CSS 支持,对吧?以下是最新的更改
@page CSS at-rule
当打印文档时,@page CSS at-rule 用于修改某些 CSS 属性。您不能使用 @page 更改所有 CSS 属性。您只能更改文档的边距、孤行、寡行和分页符。尝试更改任何其他 CSS 属性将被忽略。
例如,您可以使用 :left
和 :right
伪类为左页和右页(想想“书”)编写特定的样式,或者使用 :first
为第一页编写特定的样式。
page-break-inside CSS 属性
page-break-inside CSS 属性 会调整当前元素内部的分页符。
page-break-inside:auto;
自动分页符(默认行为)
page-break-inside:avoid;
在元素之前强制分页符
/* avoid page break inside the paragraph */
p { page-break-inside: avoid; }
text-transform:full-width
对于 CSS text-transform,full-width
会强制字符(主要是表意文字和拉丁字母)写入方框内,使它们能够与常见的东亚文字(如中文或日语)对齐。
关于 Paul Rouget
Paul 是一位 Firefox 开发人员。
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道者和编辑。就 HTML5、JavaScript 和开放 Web 进行演讲和博客写作。Robert 坚定地相信 HTML5 和开放 Web,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客,喜欢旅行和结识新朋友。
4 条评论