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
网站内容管理系统
官方站
相关文档:
原文地址:http://developer.51cto.com/art/201002/185161.htm
JavaScript是一种广泛用于客户端Web开发的脚本语言,其可算是世界上最流行的编程语言,它曾被Web开发设计师贴上噩梦的标签,虽然真正的噩梦其实是DOM API,也曾经有人认为JavaScript语法中有很多陷阱,同时其也有很多让人费解的东西。
1. 它以Java命名,但并 ......
简单的例子,自己看看,省得以后老是去找了。
<script language="javascript">
//用正则替换将X替换成y
var s="daxdasx";//原字符串
var k="x";//被替换的字段
var re = new RegExp(k,"g");
alert("替换前字符串为:"+s);
s = s.replace(re,"y");
alert("替换后字符串为:"+s);
</script> ......
JavaScript进行GET和POST请求
Web上最常见的请求就是GET请求.每次在浏览器中输入URL并打开也米纳市,就是在向服务器发送一个GET请求.
GET请求:
GET请求的参数使用问号追加到URL的结尾,后米纳给这用&好连接起来的名称/值.例如:
http://www.somewhere.com/page.php?name1=value1&name2=value2&name3=value3
......
Javascript 面向对象机制的实现
自定义类的实现方法很多,重点谈两种。
构造函数法
function Player(url){
this.url = url;
this.showUrl = function(){
alert(this.url);
}
&nb ......
function getCookies(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return '';
}
function setCookie(name, value, expires, path, domain, secure)
{
var liveDate = new Date();
expires = l ......