JavaScript 二三事

好久沒寫 blog 了,來記錄一下最近和 JavaScript 有關的消息,首先是新書, High Performance JavaScript ,是除了 JavaScript Ninja 外我最近比較期待的新書,不過兩本都是明年才會出,JavaScript Ninja 是 John Resig 寫的,目標讀者是開發 JavaScript Framework 的開發者,所以內容相當深,我有先買預覽的電子版,裡面的 code 就常常看到暈頭, High Performance 那本則是 YUI 的開發者之一 Zakas Nicholas 寫的,之前也寫過不少書,不過我都沒看過就是,目前期待主要是書名的關係。

第二個則是 Loading JavaScript as strings 這篇文章,提到如果先把 js 程式碼先用字串形式讀進來,再用 eval() 來執行速度反而會比直接邊讀邊執行還要快,這項技巧可以用在 js 量大的 web application,對於之後才要用的 code 就用這種方法讀,讓頁面的生成可以快一點,詳細的內容在 12/8 的 O'Reilly Velocity Online Conference 會介紹並 demo ,換算成台灣時間好像是週三凌晨一點多開始。

最後一個不是新東西,其實是 Google 的文章 ,裡面有講到會造成 memory leak 的原因,第一種是 IE 的 event function 可能會造成記憶體浪費(其實原因和下面的很像),解法是自己寫一個 event dispatcher ,像是 jQuery 就是這樣,第二種就是把資料附加在 DOM 元件上,例如:

var node = document.getElementById('getMe');
node.myData = 123;

像這樣可以把資料付在 DOM node 物件上,再某些情況下很有用,但是如果這些附加的資料包含其他 DOM node 的話,就會造成 memory leak ,建議的處理方法是完全不用這種特性,至於 jQuery 則是有個 data 可以用,用法就像是 key, value 的資料型態。