Function.intervalize released
Function.intervalize 已經釋出於 JSAN。也可於和多下載區下載 Function-intervalize-0.01.tar.gz。此為 JSAN 的標準散佈檔,解開之後原始碼位於 lib/Function/intervalize.js,可直接以 script 標籤的方法載入。
這個模組是為了解決此項特定的問題:函式可能常常會在一段很短暫的時間內被大量呼叫好幾次,使得 CPU 使用率突然飆高。比如說,如果我有一函式 notify():
function notify(msg) {
// 在畫面左下角顯示一小段訊息
}
其達成功能,是在畫面某處顯示訊息(如 MSN 的上線通知),並於一小段時間後消失。基於 Javascript 多頭執行的特性,這個函式可能會在多處被呼叫,甚至,有可能在同一秒內被呼叫數十次(MSN 的聯絡人的確也有可能突然在同一秒內有數人同時上線)。那麼,可以想像的是,顯示的提醒訊息將會突然蓋滿畫面而失去其原本的功用。
此時的解決辨法,便是固定讓它每秒出現一則就好。使用 Function.intervallize 的話,則改用以下的寫法便可:
var notify = (function(msg) {
// 在畫面左下角顯示一小段訊息
}).intervalize(1000);
如此一來,即便是連續呼叫 notify 五次:
notify("foo");
notify("bar");
notify("baz");
notify("foobar");
notify("foobaz");
也不會一次出現五則,而是在五秒鐘內,每秒出現一則。intervalize() 方法的參數便是區間的毫秒數。在此時間區間之內,原函式的功能保證只會進行一次。
(本文同時 Cross Post 於 hsinchu.js)
Cheers,
Kang-min Liu
註:openjsan.org 的 Index 目前尚未更新,靜待一、二日便可見到下載的連結。
About this entry
You’re currently reading “Function.intervalize released,” an entry on Handlino
- Author:
- gugod
- Published:
- June 8th, 2007 / 9pm
- Category:
- JavaScript
- Tag:
- hsinchu.js, JavaScript, jsan
No comments
Jump to comment form | comments rss [?] | trackback uri [?]