谷歌新的Chrome瀏覽器提供了許多新技術。谷歌承認應該做一些事情趕上Web應用程序目前發展的狀態。在閱讀了Chrome瀏覽器的說明文件和查看了 這個軟件的開源軟件代碼之后,業內人士Jeff Cogswell提出了他發現的Chrome瀏覽器中一些有趣的技術方面的概況。
終于實現了多處理!
雖然Chrome瀏覽器沒有完全解決內存尺寸問題,但是,它通過減少碎片來控制這個問題。在傳統的瀏覽器中,瀏覽器為一個線程分配一套虛擬內存。當然,每一個標簽都占用這個總內存集中的一個內存塊。隨著你打開更多的標簽,系統將分配更多的內存。但是,在你關閉標簽的時候,內存沒有完全恢復,不足以運行未來的標簽。你最終將遇到標準的內存碎片問題。
但是,在Chrome瀏覽器中,每一個標簽都有自己的線程。你沒有看錯,不是每一個Chrome的窗口,而是每一個標簽。Cogswell說,我做了20多年的開發工作。我從來沒有看到一個窗口能夠托管多個線程。但是,Chrome瀏覽器確實做到了。
Cogswell說,如果我目前的標簽上有一個網頁,我在地址欄輸入一個新的URL地址的時候,與那個網頁有關的 chrome.exe命令請求就關閉了,并且開始一個新的chrome.exe命令請求。這樣做是很完美的:不用輸入命令清除分配給已經關閉的網頁的內 存,Chrome瀏覽器將完全消除整個線程,然后開始一個新的線程。這是Chrome瀏覽器阻止內存碎片以及保護和隔離每一個網頁的又一種方法。
更有趣的是在我裝載雅虎網站www.yahoo.com的時候發現了一個奇怪的現象。我看到啟動了兩個線程。但 是,對于谷歌搜索引擎www.google.com那種比較小的網頁,我僅看到了一個流程。當我查看命令行的時候我發現原來輸入命令行參數設置了一個插 件。那是一個叫做插件路徑的額外的參數,設置是c:\windows\system32\macromed\flash\npswf32.dll
那是Flash播放器。Chrome為嵌入在網頁的Flash播放器啟動了另一個線程。當我在Chrome瀏覽器 中保持雅虎網頁處于打開狀態并且關閉分配給Flash播放器的線程的時候,Chrome在雅虎網頁上面顯示一個提示并且用一個Flash標識取代了那個 Flash窗口,Flash標識上面有一個失望的面孔。見圖1。
可以肯定的是雅虎的網頁仍然可以使用。換句話說,一個插件崩潰了不會造成瀏覽器崩潰。對于一次只喜歡打開少量標簽的用戶來說,這是很好的。為了保證測試的完整性,測試人員關閉了雅虎網頁的線程。這一次,整個網頁都變黑了,并且網頁上有一個失望的表情和信息。見圖2
同時,其它網頁仍在運行。實際上,Chrome瀏覽器有自己的任務管理器。當在Chrome瀏覽器中的時候,按下Shift+Esc鍵可以打開這個任務管理器。這個任務管理器甚至能夠讓你關閉Chrome瀏覽器中的線程。
渲染引擎
編寫瀏覽器軟件最困難的部分是渲染引擎。谷歌在這方面做出了正確的選擇。谷歌沒有重頭開始編寫渲染引擎,而是選擇成熟的和擁有許多優秀功能的現有的開源軟件渲染引擎。谷歌選擇的是WebKit。有趣的是WebKit是由蘋果開發的。蘋果自己開發的這個渲染引擎作為其Safari瀏覽器的基礎,然后開放了這個引擎的源代碼。現在,谷歌選擇了WebKit。
這就意味著谷歌Chrome瀏覽器的渲染引擎沒有瑕疵和速度問題。這個渲染引擎速度快并且很好用。測試人員還在chrome瀏覽器中直接打開了一個SVG(可縮放矢量圖形)文件,并且運行得很好。這是很有趣的。因為包括微軟和Adobe在內的業內各種力量都在排斥SVG,迫使許多人放棄了SVG的開發。很難說谷歌chrome瀏覽器會對SVG領域有什么影響。另外,許多人說chrome瀏覽器的SVG不支持動畫。這是一個主要缺陷。我們期待著谷歌解決這個問題。
桌面應用程序
谷歌chrome瀏覽器支持一種形式的“桌面應用程序”。當你在一個網站上的時候,那就是一個Web應用程序。你可以再桌面上存儲一個快捷方式以便打開那個網頁。
看看這個快捷方式,我可以看到這個啟動谷歌的方式,輸入一個地址作為一個“應用程序”的參數,像這樣:C:\Users\Jeff\AppData\Local\Google\Chrome\Application\chrome.exe
--app=http://mail.google.com/mail
JavaScript引擎: V8
Chrome瀏覽器支持新的名為V8的JavaScript引擎。V8是一個開源軟件項目,是谷歌在丹麥的一個開 發團隊開發的。V8能夠把JavaScript匯編成本地的代碼。這些代碼能夠在虛擬機上運行。這些虛擬機甚至能夠實施優化的垃圾搜集算法和進行多線程的 處理。這遠遠超出了腳本語言的功能。這是一個全面的運行時間。此外,V8還能夠利用名為JSCRE的第三方開源軟件庫。
為開發人員提供的JavaScript
測試人員稱,Chrome瀏覽器內置了幾個很好的工具來幫助Web開發人員。對于入門者來說,Chrome包含了一個全面的JavaScript控制臺。見圖3
Chrome瀏覽器還有一個JavaScript調試程序。下面是這個調試程序的截屏圖像,見圖4
Google Gears插件
Google Gears是用于各種瀏覽器的一個插件,給網站提供隱私存出空間。例如,在過去,在線字處理程序的最大問題是文件存儲在服務器的某個地方。如果你使用筆記本電腦或者乘坐飛機,你在有互聯網接入能力之前是不能訪問這些文件的。
Google Gears為這種Web應用程序提供了本地存儲從能從而解決了這個問題。除了支持本地存儲之外,Google Gears還提供幫助Web開發的更多功能,如本地緩存文件等。
結論
Cogswell說,Chrome瀏覽器給他留下了深刻的印象。谷歌認識到目前Web應用程序的開發已經超過了瀏覽器的技術水平。需要做一些事情趕上來。競爭的力量將迫使IE和火狐瀏覽器也這樣做。如果是這樣,我們將為來的一兩年里將從新的瀏覽器技術進步中受益。