This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

Fillano's Learning Notes 會員登入 會員註冊

幾天前在YUI Blog上看到有Zakas的新書免費試閱,就下載來看了一下。他最後提到了一些必須要了解的timer概念,對於使用setTimeout或是setInterval函數很有幫助。

主要的問題在於,JavaScript的實作主要都是基於single thread模型,而用一個queue的結構來處理非同步的執行(包含DOM上面發生的事件、AJAX的事件、setTimeout的事件、setInterval的事件觸發等等),所以他只保證盡量在指定的時候執行,但不保證時間的精確。jQuery的作者John Resig在他的blog中有一篇文章做了不錯的說明:How JavaScript Timers Work。事實上,所有的程式都是放在一個queue裡面依序執行的,所以只要用一個alert()來暫停執行,其他所有應該要執行的程式也都受影響而停下來。

 (閱讀全文)

期末報告的季節又到了...

看到有人在論壇上求助,html的作業要求做出配合音樂節拍播放圖片......(嗯嗯,對於初學者來說,恐怕有點難),有一點好奇,所以手動試了一下,怎麼做出依照給定時間執行動作的效果。

 (閱讀全文)

昨天的文章提到這個新的JavaScript引擎,剛好看到jQuery1.3 beta 2之前推出(預計在1月14推出正式版),乾脆就順便測試一下。在上篇提到的Introducing SquirrelFish Extreme文章中,有介紹到他用的最佳化技術,比較讓我注意的是Polymorphic Inline Cache及Regular Expression JIT。

Polymorphic Inline Cache可以改進一些context switch的效率,這在昨天的測試也可以看得出來。最初的概念是來自Self Language的run time最佳化策略。可以參考Maciej Stachowiak在文章中的解釋及wikipedia中關於Self Language的文章最後一段。

Regular Expression JIT簡單地說就是把他們對JavaScript做的最佳化技術也用到Regular Expression上,來加速Regular Expression的速度,從測試的結果看起來,對於執行Regular Expression的效率有非常明顯的提昇。

 (閱讀全文)

前幾天看到介紹Safari的文章,是有關於他的新JavaScript引擎:SquirrelFish Extreme,號稱速度比目前Safari的引擎速度快許多。剛好想測試一下JavaScript的function做context switch大概要花多少overhead,把他拿來跟Firefox 3.0.5、Chrome1.0比較一下,果然有明顯的速度改進。

測試過的幾個版本分別是:

  1. Firefox 3.0.5
  2. Google Chrome 1.0
  3. Safari 3.2.1
  4. Webkit Nightly Build(內含極限松鼠魚) r39553

 (閱讀全文)