saga
火狐狸
火狐狸
  • UID35049
  • 注册日期2011-01-09
  • 最后登录2017-10-10
  • 发帖数119
  • 经验69枚
  • 威望0点
  • 贡献值48点
  • 好评度2点
  • 社区居民
阅读:2978回复:8

Firefox 4 Beta 9 == 一堆牛x

楼主#
更多 发布于:2011-01-18 21:43
http://www.mijia.org/blog/?p=283
Firefox 4 Beta 9已经发布了,距离Firefox 4的最终发布又近了一步,估计还会又一个Beta和几个RC,按照前几天外媒的报道加上邮件列表中的讨论,预期是2月份发布Firefox 4。随着Beta 9的发布,Mozilla的产品Director也在HMO上发了一篇博客罗列Beta9中的牛x特性,标题就很吸引人,这里也总结一下…
性能

Firefox 4中一个很重要的主题就是性能。从启动时间到JavaScript引擎的性能,从底层,Mozilla做了很大的改变;从交互上,也有很多前端的变化,提升交互反应时间,改进性能体验等。

    * JaegerMonkey:其实之前JaegerMonkey正式进入Firefox 4的时候也有文章描述过,JM被称作是世界上第一个第三代JS引擎——这个代不知道具体是怎么划分的,在之前3.6中Trace技术的基础上,加入了 Baseline JIT的技术形成JM引擎,我们也有一个专门的网站来比较Sunspider和V8等benchmark上的表现。Mozilla自己也开始打造新一代的Benchmark系统。
    * 硬件加速:硬件加速基本上已经是现代浏览器的标配了。在Firefox 4中,在Windows 7和Vista平台上通过D2D、DX9和DX10的组合拳提供全面的硬件加速能力,这会为从Canvas画图到视频渲染等所有环节带来性能上的提升。 Windows XP用户也会在很多操作上享用到硬件加速,因为我们已经在使用支持DX9的新Layers基础结构。Mac OSX的用户则是通过优秀的OpenGL支持做到硬件加速。
    * Compartments:这是个新词汇。其实前一阵子HMO上也有个一篇文章具体写过细节。简单说,Firefox 4开始改变JS对象的管理方式,从全局Heap分成独立Heap,这种新机制就叫做Compartments,这样做的好处就是大大提升GC的效率,减少 GC对于整个程序的影响和威胁,这个特性是从Beta 7的时候开始研发并提交分支,但是应该是在Beta 9的时候加入构建的,如果想了解这个,可以看看这篇文章。
    * DOM性能和样式解析:现在JS获得了足够多的眼球,不过浏览器的性能中,JS是一部分,还有一个很重要的部分就是DOM和样式解析的性能,这两个事情也是跟页面读取和渲染速度直接相关的,例如注明的Reflow/Render过程,他们对于页面性能的影响甚至超过JS,在Firefox 4中,我们做了大量的性能改进,基本上得到两倍的提升。
    * JavaScript支持类型数组:如果您需要在JS里面处理大量数据,并且需要处理更低层次抽象的数据,那么现在在Firefox中,您可以使用支持本地类型的数组对象,如果进行WebGL或者图形操作的时候,会大大提升计算的速度。如果您是通过XHR请求数据然后处理的话,使用mozResponseArrayBuffer也可以利用类型数组来获得性能提升。
    * JS动画调度API:Firefox 4中添加了用来在JS中调度动画的事件,这样您可以充分利用系统的渲染系统,Gecko内部有一个画图时钟,最大的渲染速度是60fps,对于没有在前台的标签页,这个时钟还可以被调节到1fps,您可以充分利用这个时钟来调度绘图,从而节省CPU和电池。
    * Retained Layers:这个词汇之前也出现过,不过一直没有翻译过,大致的意思就是说,现在火狐的渲染引擎部分重新进行了设计,为了提升画图的性能,Gecko内部有一个系统叫做Layers,做的事情笼统的说基本就是把绘图过程分成了若干层次,例如图片、固定的背景、inline的视频等,都是作为一个内部层次存在,然后在最后一部,这些层次进行例如硬件加速进行组合生成最后的渲染结果,这会大大提升页面读取速度和交互体验。
    * 异步插件绘画:在Windows和Linux上,第三方插件的绘画是异步的。在以前,当页面重绘的时候,浏览器会同步的跟插件请求数据,那如果插件很慢或者死掉了的话,基本上,浏览器就会变得很慢。这一步被改为异步后,更进一步分离了浏览器和插件,加强浏览器的反应。
    * 大幅提升的缓存:Firefox 4大大改进了硬盘缓存机制。硬盘缓存启动的更快,运行期也会更快。我们希望网站作者能够看到Firefox 4中有更高的缓存命中率,我们会根据用户硬盘的可用空间动态的变化缓存区。

WebGL

Firefox 4默认开启WebGL。基于原来Vladimir Vukićević的3D Canvas的工作,WebGL已经开始被浏览器厂商们实现。同时,WebGL也在逐渐形成为国际规范。看看Demo?
JavaScript

全新的JaegerMonkey引擎很快,同时他也给我们提供了很多便利的技巧可以利用,我们也希望为开发者提供更好的工具来帮助演进JS语言。例如:

    * ECMAScript 5:Firefox4b9中包括了很多新语言特性,包括其中的strict模式。
    * Web Console:Firefox4中会包括Web Console,他可以让你在网页运行时监测网页,查看网络活动、使用console.log来记录log信息,查看CSS的警告信息等等。
    * Firebug:会紧跟Firefox4的开发进度

HTML5

Firefox从3.5开始就尝试支持HTML5标准,到了Firefox4,大量全新的HTML5相关特性被加入到Firefox中。

    * 表单:包括新input类型的支持,datalist支持,autofocus和placeholder等属性的支持,解藕表单、表单选项、表单验证机制、限止验证和新的CSS选取器等等。这里有一篇HMO以前的文章基本涵盖了Firefox 4中对于HTML5表单的支持;
    * Parser:新的基于HTML5的parser,加入了很多新特性,最出名的要数内嵌SVG了;
    * WebM的支持:这个不用多说什么了,关注最新科技新闻的应该比较熟悉;
    * 视频缓冲API:现在支持HTML5视频的缓冲属性。这意味着开发者更容易精确知道目前视频缓冲大小,而不用去根据下载速度猜测了;
    * 视频“预读取”支持:使用“preload”属性代替了原来的“autobuffer”属性;
    * “历史记录”的pushState和replaceState:Firefox 4支持HTML5定义的pushState和replaceState的历史修改调用。允许开发者去修改浏览器导航历史列表,这对那些希望直接添加#导航记录的开发者很有帮助——例如HTML的幻灯片结构等;
    * 音频取样和生成API:Firefox音频数据API;

DOM

新的DOM特性以及性能提升,例如:

    * 文件上传控件的.click()支持:现在可以直接调用一个隐藏文件空间的.click()方法,这样可以完全构建自己的上传控件,结合上文件API和进度事件,就可以制作出非常棒的上传体验。
    * 文件API中对于.slice的支持:支持Blob API以及其中的.slice API。这允许开发者只处理文件的一小部分,而不需要将整个文件对象读取到内存中;或者为了提升上传大文件的稳定性,设计出断点续传的能力;
    * 文件API的url属性:支持文件API的.url属性。
    * 多点触碰事件支持:很早Firefox就在DOM中开始支持触碰和多点触碰的事件了。
    * 监测点击还是触碰:现在可以通过mozInputSource来判别出用户是在使用鼠标还是手指;
    * IndexedDB:Firefox 4中会包含还是非常早期的一版IndexedDB,他作为本地存储的标准,目前还处在变化中,还没有彻底确定下来;
    * FormData:添加FormData对象的支持,可以更加简单的同HTML表单进行交互;
    * SVG动画和SMIL;
    * SVG作为图片和CSS背景:现在可以使用svg作为<img>标签的源,也可以使用svg定义CSS中的背景;
    * 通过Canvas获取文件对象:很多人希望能够像访问文件对象一样的访问Canvas,可以使用mozGetAsFile来访问Canvas获取图片文件对象;
    * 可以改变大小的文本框:默认是可以改变大小的,不过可以通过resize属性来禁用

CSS

同样,Firefox 4中还包括了一堆牛x的CSS支持:

    * CSS变换:支持CSS变换,不过规范还没确定,所以需要使用-moz前缀;
    * calc():对于calc()的支持还处于早期阶段,使用-moz-calc;
    * -moz-any():非常有用的一个CSS扩展 -moz-any() 选取器分组;
    * -moz-element():对于background-image的扩展,允许使用任何其他元素作为当前元素的背景;
    * -moz-placeholder():用来配合HTML5表单中的placeholder,可以改变作为placeholder的文字的很多属性;
    * border-radius:不再需要写-moz-border-radius了;
    * box-shadow:同上,不需要在写-moz-box-shadow了;
    * -moz-font-feature-settings:支持完全定义TrueType字体的特性;
    * 一致的CSS单位:现在为了保持同IE、Safari和Chrome一致,1英寸==96px;
    * 支持CSS物理单位:如果您希望使用物理大小,可以使用mozmm单位;
    * device-pixel-ratio:支持-moz-device-pixel-ratio媒介查询;
    * resize属性:可以禁用text area的改变大小功能;
    * -moz-tab-size;
    * -moz-focusring:伪选取器,自定义元素被选中时候的样式;
    * -moz-image-rect:使用图片内的矩形部分作为background或者background-image的图形部分;

安全

新的安全特性和支持,包括:

    * 内容安全策略(Content Security Policy):CSP包含一系列工具可以帮助组织不同类型的攻击,例如防止XSS攻击、点击劫持等;此外,有一个很重要的特性是,一旦安全规则被打破,Firefox会把破坏的信息发送回网站作者,可以帮助改进网站;
    * X-Frame-Options:Firefox 4支持X-Frame-Options信息头,用来防御点击劫持;
    * HSTS(ForceTLS):Firefox 4支持HTTP Strict Transport Security (HSTS) 信息头;
    * CORS改进;
    * isited 改进:之前:visited会暴露出一个长达10年的漏洞,允许任何网站获取个人的浏览历史,Firefox 4中已经进行了改正,同样WebKit为基础的浏览器也都进行了改正,之后IE9也会进行改正;

===
free49498445
狐狸大王
狐狸大王
  • UID33385
  • 注册日期2010-07-11
  • 最后登录2013-04-24
  • 发帖数384
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2011-01-18 21:43
点位支持~
laintime
火狐狸
火狐狸
  • UID33151
  • 注册日期2010-06-24
  • 最后登录2016-05-04
  • 发帖数157
  • 经验20枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
2楼#
发布于:2011-01-18 21:43
越看越牛叉啊,FF越来越好了
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
3楼#
发布于:2011-01-18 21:43
感觉他们用的词汇太难懂了,经常发明新词。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
xf_mao
狐狸大王
狐狸大王
  • UID31861
  • 注册日期2010-01-29
  • 最后登录2017-09-18
  • 发帖数357
  • 经验19枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
4楼#
发布于:2011-01-18 21:43
支持
since 2005
lord
非常火狐
非常火狐
  • UID6208
  • 注册日期2005-05-21
  • 最后登录2024-03-27
  • 发帖数634
  • 经验81枚
  • 威望0点
  • 贡献值12点
  • 好评度3点
  • 社区居民
  • 忠实会员
5楼#
发布于:2011-01-18 21:43
看上去不错
心想事成,人生如梦
195
195
千年狐狸
千年狐狸
  • UID3920
  • 注册日期2005-03-12
  • 最后登录2023-01-15
  • 发帖数1123
  • 经验50枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
  • 忠实会员
6楼#
发布于:2011-01-18 21:43
手动升级了。
晨之晖
火狐狸
火狐狸
  • UID32470
  • 注册日期2010-04-04
  • 最后登录2016-01-10
  • 发帖数96
  • 经验10枚
  • 威望1点
  • 贡献值20点
  • 好评度14点
7楼#
发布于:2011-01-18 21:43
等几个重要扩展的支持
plera
小狐狸
小狐狸
  • UID34275
  • 注册日期2010-10-17
  • 最后登录2015-04-26
  • 发帖数12
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2011-01-18 21:43
为什么我觉得beta9特别卡,特别是选择文字的时候卡的不行,后来换回beta8了
游客

返回顶部