Firefox 最新 JavaScript 引擎初探
自从 Google 推出含 V8 JavaScript 引擎的 Chrome 以来,公众对 JavaScript
引擎执行效率的胃口又一次被提高,众多浏览器的开发者们绞尽脑汁提升他们的 JavaScript 性能,Opera 最新的10.50 版的 Carakan
引擎据称已经超过 V8,而 Firefox 的开发者们也不甘示弱。
最近升级到 Firefox 3.6 的用户已经发现他们的 JavaScript 速度有了非常明显的改善,虽然Firefox 的
TraceMonkey 引擎和 Googel V8 比仍有差距,不过,这个状况即将改变,Mozilla 团队正在开发一个新的
JavaScript 引擎,JägerMonkey,期待将 Firefox 的 JavaScript 性能提升到一个新的水平。
当前,Firefox TraceMonkey 引擎之所以性能不佳的一个原因是,它的追踪(trace)算法仍存在问题,Trace
是一种可以将 JavaScript
中的循环语句进行快速编译执行的算法,但这个算法在遇到复杂的,嵌套的,尤其是递归的循环语句时,并不能正确执行(详见这篇文章
),Firefox
因此会退回解释执行方式,而解释执行的效率是很低的。
Mozilla 团队正在解决这一问题,新的 JägerMonkey 引擎在测试中已经显露出非常积极的结果,最终的性能提高可能高达 30% ~
40%。Mozilla
的 Dave Mandelin 对此表示乐观
,他说,JägerMonkey 在执行执行全部 SunSpider 脚本的时候,Jäger
模式比解释模式快了18%,这还不算其它方面的优化与改进,他们在新引擎中所作的改进包括很多方面。
如果你对此感兴趣,Mandelin
的博客文章
很值得一读。简单说,起用了 JägerMonkey 引擎的 Firefox 将更加引人注目。关于 Firefox
的最新版本的相关文件,你可以到这个地址获取:http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
。
本文来源:http://www.downloadsquad.com/2010/02/27/early-work-on-mozilla-firefox-new-javascript-engine-nets-big-speed-gai/
中
文翻译来源:锐商企业CMS
网站内容管理系统
官方站
相关文档:
jQuery, MooTools, Prototype 等优秀的 JavaScript 框架拥有各种强大的功能,包括绘制 Web 图表,使用这些框架以及相应插件,我们可以非常轻松地实现曲线图,圆饼图,柱状图等 Web 图表的绘制,而不必象以往那样通过复杂的 Flash 技术实现。本文介绍了9个优秀的基于 JavaScript 与 CSS 的 Web 图表框架。 1. Flot Flot ......
JavaScript进行GET和POST请求
Web上最常见的请求就是GET请求.每次在浏览器中输入URL并打开也米纳市,就是在向服务器发送一个GET请求.
GET请求:
GET请求的参数使用问号追加到URL的结尾,后米纳给这用&好连接起来的名称/值.例如:
http://www.somewhere.com/page.php?name1=value1&name2=value2&name3=value3
......
在数百万张页面中,JavaScript 被用来改进设计、验证表单、检测浏览器、创建cookies,等等等等。
JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比方说 Internet
Explorer、 Mozilla、Firefox、Netscape、和 Opera。
......
//获取当前文件全路径
<script language="javascript">
alert(window.location.href);
alert(window.location);
alert(location.href);
alert(parent.location.href);
alert(top.location.href);
alert(document.location.href);
alert(document.URL);
</scri ......
首先是我们熟悉的extend函数
/**
* 扩展函数
* @param target 扩展对象
* @param params 扩展参数
*/
function extend(target, params) {
if (!target) {
target = {};
}
for (var prop in params) {
target[prop] = params[prop];
}
r ......