-
javascript引擎
鎖定
- 中文名
- javascript引擎
- 屬 性
- 引擎
- 專門處理
- JavaScript腳本
- 類 型
- 虛擬機
javascript引擎歷史發展
第一款JavaScript引擎由布蘭登·艾克在網景公司開發,用於Netscape Navigator網頁瀏覽器中。引擎的名字叫做SpiderMonkey,由C實現。它自JavaScript 1.5升級以符合ECMA-262 版本3。Rhino引擎,由網景公司的Norris Boyd開發,由Java實現。像SpiderMonkey一樣,Rhino符合ECMA-262 版本3。JavaScript引擎的應用例子還包括: Apple Safari4的Nitro,Chrome瀏覽器的V8和 Mozilla Firefox 3.5的TraceMonkey。
最通用的JavaScript宿主環境是網頁瀏覽器。網頁瀏覽器一般使用公共的API創建“宿主對象”以便於在JavaScript中支持DOM。
網頁服務器是另一種通過的應用程序引擎。一個JavaScript服務器能夠處理HTTP請求並回應,這樣JavaScript程序能動態生成頁面。微軟用於IIS中ASP技術允許服務器端代碼以VB Script或JScript(微軟的JavaScript實現)寫成。Jaxer是以JavaScript編寫成的網頁服務器,這有利於在服務器端和客户端使用同樣的代碼。
javascript引擎引擎應用
主要的網頁瀏覽器JavaScript引擎:
Mozilla
SpiderMonkey,第一款JavaScript引擎,由Brendan Eich在Netscape Communications時編寫,用於Mozilla Firefox 1.0~3.0版本。
TraceMonkey,基於實時編譯的引擎,其中部份代碼取自Tamarin引擎,用於Mozilla Firefox 3.5~3.6版本。
JaegerMonkey,德文Jäger原意為獵人,結合追蹤和組合碼技術大幅提高性能,部分技術借鑿了V8、JavaScriptCore、WebKit,用於Mozilla Firefox 4.0以上版本。
Google
微軟
Chakra (JScript引擎),中文譯名為查克拉,用於Internet Explorer 9的32位版本。
Opera
Linear A,用於Opera 4.0~6.1版本。
Linear B,用於Opera 7.0~9.2版本。
Futhark,用於Opera 9.5~10.2版本。
其它
Narcissus,開放源代碼,由Brendan Eich編寫(他也參與編寫了第一個SpiderMonkey)。
Tamarin,由Adobe Labs編寫,Flash Player 9所使用的引擎。
Nitro(原名SquirrelFish),為Safari 4編寫。
javascript引擎性能演化
2008年5月11日,Mozilla採用PGO(Profile-guided Optimizations)特性指引優化,使Firefox 3.0的性能大幅提升。2009年6月30日發佈的Firefox 3.5使用了Tracing和Nanojit技術,能“在某些情況下的速度提升20到40倍”,其中Nanojit的代碼由Adobe貢獻。
2008年6月2日,WebKit開發團隊聲明瞭SquirrelFish——一個新的JavaScript引擎能極大地提升Safari解釋腳本的速度。該引擎是Safari 4其中一個新特性,在2008年6月11日發佈給程序員使用;最終此JavaScript引擎被稱為Nitro。
在瀏覽器開發者之間展開了一場開發更快的JavaScript引擎的競賽。2008年,Chrome瀏覽器因它的JavaScript性能而被受稱讚,但是其它瀏覽器馬上使用了更快的JavaScript引擎。之後,Chrome瀏覽器在性能上獲得領先,其長處在於它高速的性能和JavaScript的處理速度,這些都由許多網站在主要的瀏覽器之間的速度測試中得到驗證。隨着WebKit的Squirrelfish Extreme和Mozilla的TraceMonkey JavaScript虛擬機 出現,Chrome的JavaScript執行速度就被超越了。Google丹麥在Chrome 2中開發了更快速的V8引擎。
一個典型的瀏覽器有一個圖形引擎和一個獨立的JavaScript引擎。這樣JavaScript引擎能夠被更方便的測試、重新生成或者在另一些項目中使用。例如Carakan被用在Presto中,Nitro被用在WebKit中,SpiderMonkey被用在Gecko中,KJS被用在KHTML中,Rhino默認不包含任何佈局引擎。但還有其他組合,例如V8與WebKit被用於Chrome瀏覽器中。JavaScript引擎能為程序員提供部分操作瀏覽器的功能(網絡、DOM、外部事件、HTML5視頻、canvas和存儲)。
Sunspider是一個JavaScript實用基準測試通過一系列關於JavaScript語言的腳本測試JavaScript引擎的速度。Sunspider不測試無關於JavaScript的特性(不使用HTML、CSS和無網絡情況下)。
javascript引擎實現
參見:ECMAScript引擎列表 JavaScript是一種ECMAScript方言,在許多程序中得以實現,特別是在網頁瀏覽器。這些方言通常擴展了語言,或者標準庫和相關API,例如W3C定義的DOM。這意味着以一種方言實現的程序不兼容於另一種方言的實現,除非程序使用了方言中的公共子集所具有的特性和API。
在實現和方言中存在着一些差別。一種語言的方言有一些與語言不同的地方。實現能夠執行該語言或方言編寫的程序。
應用程序(實現) | 方言和最後版本 | |
---|---|---|
Chrome瀏覽器,V8引擎 | JavaScript | ECMA-262,版本3 |
Mozilla Firefox,Gecko排版引擎,SpiderMonkey和Rhino | JavaScript 1.8.1 | ECMA-262,版本3 |
Opera | 一些JavaScript 1.5特性及一些JScript擴展 | ECMA-262,版本3 |
JavaScript 1.5 | ECMA-262,版本3 | |
Adobe Acrobat | JavaScript 1.5 | ECMA-262,版本3 |
OpenLaszlo Platform | JavaScript 1.4 | ECMA-262,版本3 |
Max/MSP | JavaScript 1.5 | ECMA-262,版本3 |
ANT Galio 3 | JavaScript 1.5附帶RMAI擴展 | ECMA-262,版本3 |
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:15次歷史版本
- 最近更新: 潇潇是离别