中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > 解讀javascript的計時器 II
認(rèn)識Javascript數(shù)組 回到列表 Data URI 和 MHTML
 解讀javascript的計時器 II

作者:dishuipiaoxiang 時間: 2009-08-19 文檔類型:原創(chuàng) 來自:

第 1 頁 昂貴計算的處理
第 2 頁 中央計時器控件
第 3 頁 異步測試
第 4 頁 總結(jié)

2、中央計時器控件

在使用計時器時,出現(xiàn)了一個問題--在處理大量計時器時如何管理它們。在動畫處理中你嘗試去同步處理大量屬性時就尤其重要,你需要一種方法去管理它們。

你的計時器有一個核心的控制將賦予你很大的權(quán)力和靈活性,即:

  • 在某個時刻每個頁面僅一個計時器運(yùn)行;
  • 你可以隨時暫停和繼續(xù)計時器;
  • 移除回調(diào)函數(shù)不過是小菜一碟。

你也必需認(rèn)識到,增加同步計時器的數(shù)量有可能增加瀏覽器垃圾回收出現(xiàn)的可能性。一般來說,瀏覽器在搜尋并嘗試綁定任何零碎的東西(刪除未使用的變量、對象等)。因為它們通常在正常的Javascript引擎管理之外(通過其它線程),這時定時器的問題就尤為嚴(yán)重。一些瀏覽器能處理這種情況而另外一些瀏覽器會導(dǎo)致長時的垃圾回收循環(huán)出現(xiàn)。你也許會注意到這種問題--當(dāng)你在一個瀏覽器中看到的是漂亮、平滑的動畫,而在另一個瀏覽器中動畫是走走停停完成的。減少計時器同步應(yīng)用的數(shù)量對此大有裨益(這也是現(xiàn)代瀏覽器引入類似中央計時器控件構(gòu)件的原因)。

讓我們來看一個例子,我們有多個函數(shù),這些函數(shù)分別對單個屬性產(chǎn)生動畫效果,但它們被一個單獨(dú)的計時器函數(shù)管理。

用計時器隊列控制多重動畫:

<div id="box" style="position:absolute;">Hello!</div>

var timers = {
        timerID: 0,
        timers: [],
        start: function(){
    if ( this.timerID )
      return;
    (function(){
      for ( var i = 0; i < timers.timers.length; i++ )
        if ( timers.timers[i]() === false ) {
          timers.timers.splice(i, 1);
          i--;
      }
      timers.timerID = setTimeout( arguments.callee, 0 );
    })();
  },
 stop: function(){
   clearTimeout( this.timerID );
   this.timerID = 0;
  },
 add: function(fn){
   this.timers.push( fn );
   this.start();
 }
};
var box = document.getElementsById("box"), left = 0, top = 20;
timers.add(function(){
 box.style.left = left + "px";
 if ( ++left > 50 )
  return false;
});
timers.add(function(){
 box.style.top = top + "px";
 top += 2;
 if ( top > 120 )
  return false;
});

在這我們創(chuàng)建了一個中央控制結(jié)構(gòu)。我們可以添加新的計時器回調(diào)函數(shù),并可停止和開始它們的執(zhí)行。此外,回調(diào)函數(shù)有能力在任何時候刪除自己,只需簡單的返回“false”即可(這比通常的clearTimeout模式更容易),讓我們逐一分析代碼看看它是如何工作的。

起初,所有回調(diào)函數(shù)連同當(dāng)前計時器的ID(timers.ID)被存儲在一個中央數(shù)組中(timers.timers)。核心內(nèi)容在start()函數(shù)內(nèi)部,在這里我們需要確認(rèn)得是已沒有計時器在運(yùn)行,如果是那樣,就開始我們的中央計時器。

計時器包含一個循環(huán),它遍歷所有的回調(diào)函數(shù),并按順序執(zhí)行它們,它還檢查回調(diào)函數(shù)返回的值,如果是“false”,將從執(zhí)行中移除。事實證明,這是計時器管理非常簡單的方式。

有一點(diǎn)非常重要,用這種方式組織計時器會確;卣{(diào)函數(shù)總是按順序執(zhí)行,那樣,正常的計時器總是得不到保證(瀏覽器一個接一個的選擇執(zhí)行)。

定時器的這種組織方式對于大型應(yīng)用程序或任何形式的真正的Javascript動畫至關(guān)重要,當(dāng)我們討論如何創(chuàng)建跨瀏覽器動畫時,有一種解決方案肯定有助于將來任何形式的應(yīng)用開發(fā)。

出處:
責(zé)任編輯:
bluehearts

上一頁 昂貴計算的處理 下一頁 異步測試

◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。

作者文章
解讀javascript的計時器 I
使用jQuery改進(jìn)文件上傳控件
自適應(yīng)css布局——流動布局新時代
圖像替換新技術(shù):狀態(tài)域方法
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:2/41個記錄/頁 轉(zhuǎn)到 頁 共4個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2