Home » 2008 » September (Page 2)

加快 JavaScript 的速度

最近在研究頁面速度時想到的方法,這個方法對於之後的 JS engine 應該會有幫助,另外也可以解決一個常見的鳥問題。

國外應該有人有提過這個方法,不過我用 Google 翻了一下翻不到,等之後找到再收到 delicious.com

程式碼的精神很簡單:

var a = function() { /* slow code */ };
setTimeout(a, 1);

這樣的好處是:

  • 程式可以馬上跑下去,就算 code 裡面有一些比較慢的動作 (像是透過網路抓圖片回來)。如果 JS engine 有能力使用 OS threading 就能夠避免 block I/O 造成頁面卡住。
  • 在 document 上掛 onready function 有可能會執行不到,原因是頁面中間遇到 JS error 時就不會跑 document 的 onready。但用 setTimeout 的方法就沒這個問題。(只以 IE6/IE7/Firefox3 測試過,不確定其他的瀏覽器是否支援)

抱怨一下,IE 的 JS 速度實在是不怎麼樣...

Google 自己的瀏覽器:Chrome

Google 官方對於 Google Chrome 的公告都出來了:A fresh take on the browser,甚至有漫畫版本的說明可以看...

依照 Google 的說明,這是一套 open source software,rendering engine 是 Apple's WebKit,配上自己寫的 V8 JavaScript engine,看起來又有一堆 web developer 要頭痛了...

最近就會有 beta version 可以下載來看,到時候再抓來測試。

Update:網站「意外洩漏」的截圖被人抓下來了 (都搞這套...),有不少人抓了 Screenshot 可以看,以這些截圖看得出來 Chrome 的設計:Google Chrome Screenshots。剛剛看了才想到,不知道 Chrome 有沒有從 Microsoft 那套學起來,內建一堆自己的東西?順便把 Gears 包進去?

Update:釋出了,在 Google 的首頁就有下載點!另外附上 Acid2 的截圖,看起來沒問題:

可以注意到網址列的處理上,刻意把站台部份與路徑部份的顏色分開:

如果是 SSL 站台的話則是黃底,再把 https 用綠色標出:

如果是過期的憑證會這樣顯示:

Proxy 設定則是直接吃 IE 的設定,預設會打開 DNS prefetch cache,的確有比較順暢... 另外可以用 about:plugins 看到有哪些 plugin 預設就已經被裝起來了,預設有把 Google Gears 裝起來:

另外一個 about:memory 則是可以直接看記憶體用量,包括其他瀏覽器! (居然直接去讀其他 browser 的資訊...)

Archives