今天,继 Firefox 4 发布三个月后,我们发布了 Firefox 5,这得益于我们新的 开发周期。开发人员将能够使用 CSS3 动画 创建更丰富的动画效果。此版本带来了各种改进、性能优化和错误修复。
CSS3 动画
CSS 动画(查看 文档)是一种使用 CSS 创建动画的新方法。与 CSS 过渡 一样,它们高效且运行流畅(参见 David Baron 的 文章),开发人员可以更好地控制中间步骤(关键帧),并且现在可以创建更复杂的动画效果。
值得注意的变化
- 您现在可以将图像作为参数传递给 createImageData 以复制其尺寸。
- setTimeout 和 setInterval 只能在非活动标签页中每秒执行一次回调。这遵循了 requestAnimationFrame 的行为,以节省 CPU 和功耗。
其他错误修复和性能改进
HTML
- 现在所有 HTML 元素都具有
<a class="new" href="https://mdn.org.cn/en/DOM/element.accessKey">accessKey</a>
属性,以及<a href="https://mdn.org.cn/en/DOM/element.blur">blur()</a>
、<a href="https://mdn.org.cn/en/DOM/element.click">click()</a>
和<a href="https://mdn.org.cn/en/DOM/element.focus">focus()</a>
方法。这些方法在<a href="https://mdn.org.cn/en/DOM/HTMLElement">HTMLElement</a>
接口中指定。 - 为了符合 HTML5 规范,对 UTF-7 和 UTF-32 字符集 的支持已被移除。
- 在怪异模式下,当匹配时,空
<a href="https://mdn.org.cn/en/HTML/Element/map"><map></a>
不会再被跳过,而是会优先于非空<a href="https://mdn.org.cn/en/HTML/Element/map"><map></a>
。有关详细信息,请参阅<a href="https://mdn.org.cn/en/HTML/Element/map"><map></a>
元素上的 Gecko 说明。 - Android 上的 Firefox 手机现在支持 WOFF 字体,用于
<a href="https://mdn.org.cn/en/CSS/@font-face">@font-face</a>
。 - WebGL 不再从源域以外的域加载纹理,这是一种安全措施。
Canvas 改进
<a href="https://mdn.org.cn/en/HTML/Element/canvas"><canvas></a>
2D 绘图上下文现在支持将ImageData
对象指定为createImageData()
方法的输入;这将 创建一个新的ImageData
对象,该对象使用与指定对象相同的尺寸进行初始化,但所有像素仍然预设为透明黑色。- 通过调用
<a href="https://mdn.org.cn/en/DOM/CanvasGradient">CanvasGradient</a>
方法addColorStop()
添加颜色停止时,指定非有限值现在会正确地抛出INDEX_SIZE_ERR
,而不是SYNTAX_ERR
。 <a href="https://mdn.org.cn/en/DOM/HTMLCanvasElement">HTMLCanvasElement</a>
方法toDataURL()
现在在匹配之前会正确地将指定的 MIME 类型转换为小写。getImageData()
现在可以正确地接受超出画布边界的矩形;画布外的像素将返回为透明黑色。drawImage()
和createImageData()
现在根据规范处理负参数,方法是在适当的轴线上翻转矩形。- 指定非有限值时调用
createImageData()
现在会正确地抛出NOT_SUPPORTED_ERR
异常。 createImageData()
和getImageData()
现在可以正确地返回至少一个像素的图像数据,即使指定了一个小于一个像素的矩形。- 指定负半径时调用
createRadialGradient()
现在会正确地抛出INDEX_SIZE_ERR
。 - 调用
createPattern()
或drawImage()
时指定null
或undefined
图像现在会正确地抛出TYPE_MISMATCH_ERR
异常。 - 为
globalAlpha
指定无效值不再抛出SYNTAX_ERR
异常;这些值现在会正确地被静默忽略。 - 调用
translate()
、transform()
、rect()
、clearRect()
、fillRect()
、strokeRect()
、lineTo()
、moveTo()
、quadraticCurveTo()
或arc()
时,指定无效值不再抛出异常;这些调用现在会正确地被静默忽略。 - 将
shadowOffsetX
、shadowOffsetY
或shadowBlur
的值设置为无效值现在会静默忽略。 - 将
rotate
或scale
的值设置为无效值现在会静默忽略。
CSS
- 对 CSS 动画 的支持已添加,目前使用
-moz-
前缀。
DOM
<a href="https://mdn.org.cn/en/DOM/selection">selection</a>
对象的modify()
方法已更改,因此“单词”选择粒度不再包括尾随空格;这使它在不同平台上更加一致,并且与 WebKit 的实现行为相匹配。<a href="https://mdn.org.cn/en/DOM/window.setTimeout">window.setTimeout()</a>
方法现在被限制为在非活动标签页中每秒发送不超过一个超时。此外,它现在将嵌套超时限制为 HTML5 规范允许的最小值:4 毫秒(而不是以前限制的 10 毫秒)。- 类似地,
<a href="https://mdn.org.cn/en/DOM/window.setInterval">window.setInterval()</a>
方法现在被限制为在非活动标签页中每秒不超过一个间隔。 XMLHttpRequest
现在 支持loadend
事件 用于进度监听器。此事件在任何传输结束后发送(即在abort
、error
或load
事件之后)。您可以使用它来处理任何需要在传输成功或失败后执行的任务。<a href="https://mdn.org.cn/en/DOM/Blob">Blob</a>
以及扩展的<a href="https://mdn.org.cn/en/DOM/File">File</a>
对象的slice()
方法已被移除,并替换为一种新的、建议的语法,使其与 JavaScript 中的Array.slice()
和String.slice()
方法更加一致。此方法目前名为mozSlice()
。<a href="https://mdn.org.cn/en/DOM/window.navigator.language">window.navigator.language</a>
的值现在通过查看Accept-Language
HTTP 头 的值来确定。
JavaScript
- 正则表达式不再可以像函数一样调用;此更改与 WebKit 团队协同完成,以确保兼容性(参见 WebKit 错误 28285)。
- 现在支持
Function.prototype.isGenerator()
方法;这使您可以确定某个函数是否为 生成器。
SVG
<a href="https://mdn.org.cn/en/SVG/Attribute/class">class</a>
SVG 属性现在可以被动画化。- 以下表示对象列表的与 SVG 相关的 DOM 接口现在可以被索引并像数组一样访问;此外,它们具有一个
length
属性,指示列表中的项目数量:<a class="new" href="https://mdn.org.cn/en/DOM/SVGLengthList">SVGLengthList</a>
、<a class="new" href="https://mdn.org.cn/en/DOM/SVGNumberList">SVGNumberList</a>
、<a class="new" href="https://mdn.org.cn/en/DOM/SVGPathSegList">SVGPathSegList</a>
和<a class="new" href="https://mdn.org.cn/en/DOM/SVGPointList">SVGPointList</a>
。
HTTP
- Firefox 不再发送“Keep-Alive”HTTP 头;我们没有正确地格式化它,并且它是多余的,因为我们也发送了
<a href="https://mdn.org.cn/en/HTTP/Headers#Connection">Connection:</a>
或<a href="https://mdn.org.cn/en/HTTP/Headers#Proxy-Connection">Proxy-Connection:</a>
头,其值为“keep-alive”。 - HTTP 事务模型已更新,以更智能地处理持久连接池中的连接重用;Necko 现在不再将池视为 FIFO 队列,而是尝试对池进行排序,将具有最大 拥塞窗口 (CWND) 的连接排在首位。这可以通过在许多情况下避免需要增长连接的窗口,从而减少 HTTP 事务的往返时间 (RTT)。
- 如果同时提供了 `filename` 和 `filename*` 参数,Firefox 现在可以更有效地处理 Content-Disposition HTTP 响应标头;它会检查所有提供的名称,如果有 `filename*` 参数,即使 `filename` 参数在前面,也会使用 `filename*` 参数。以前,会使用第一个匹配的参数,从而阻止使用更合适的名称。请参阅 错误 588781 。
MathML
- 支持 装饰运算符
开发者工具
- Web 控制台的 `Console` 对象 现在有一个 `debug()` 方法,它是其 `log()` 方法的别名;这提高了与某些现有站点的兼容性。
关于 louisremi
开发者关系团队,长期 jQuery 贡献者和开放网络爱好者。 @louis_remi
120 条评论