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

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

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

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

上一篇:解讀javascript的計時器 I

未經(jīng)授權禁止轉載

1、昂貴計算的處理

在復雜Javascript應用程序開發(fā)中,最復雜的可能是用戶界面的單線程特性。而Javascript在處理用戶交互時最好的狀況是反應遲鈍,最糟糕的情況是無響應而導致瀏覽器掛起(在Javascript執(zhí)行時,頁面中所有的更新操作暫停)。源于這一事實,將所有復雜操作(任何多于100ms的計算)減小到可管理的程度就勢在必行。另外,如果運行了至少5秒鐘還沒有停止,一些瀏覽器(如Firefox 、Opera)將產生一個提示框警告用戶腳本無相應。

這顯然是不可取的,產生一個無響應的界面并不好。但是,幾乎可以肯定的是,當你需要處理大量數(shù)據(jù)時就會出現(xiàn)這種情況(如處理數(shù)以千計的DOM元素會導致這種情況出現(xiàn))。

此時,計時器就顯得尤為有用。由于計時器能有效的暫停Javascript代碼的執(zhí)行,它也能阻止瀏覽器將執(zhí)行的代碼掛起(只要個別代碼還不足以使瀏覽器掛起)。想到這一點,我們可以將正常的、密集的、循環(huán)計算納入到非阻塞的計算之中,讓我們看看下面這個例子,這種類型的計算是必需的。

一個長時運行的任務:

<table><tbody></tbody></table>
// Normal, intensive, operation
var table = document.getElementsByTagName("tbody");
for ( var i = 0; i < 2000; i++ ) {
 var tr = document.createElement("tr");
 for ( var t = 0; t < 6; t++ ){
  var td = document.createElement("td");
   td.appendChild( document.createTextNode("" + t));
   tr.appendChild( td );
  }
 table.appendChild( tr );
 }
}

在這個例子中,我們創(chuàng)建了總數(shù)為26000個DOM節(jié)點,并將數(shù)字填入表中,這太昂貴了,很有可能將瀏覽器掛起以阻止用戶正常的交互。我們可以將計時器引入其中,從而得到與眾不同,也許更好的結果。

用計時器將耗時較長的任務拆分開來:

<table><tbody></tbody></table>
var table = document.getElementsByTagName("tbody");
var i = 0, max = 1999;
setTimeout(function(){
 for ( var step = i + 500; i < step; i++ ) {
   var tr = document.createElement("tr");
   for ( var t = 0; t < 6; t++ ){
     var td = document.createElement("td");
     td.appendChild( document.createTextNode("" + t));
     tr.appendChild( td );
   }
}
table.appendChild( tr );
}
if ( i < max )
 setTimeout( arguments.callee, 0 );
}, 0);

在我們修改的例子中,我們將密集的計算分成四部分,每個創(chuàng)建6500個節(jié)點。這些計算不太可能中斷瀏覽器正常的流。最糟糕的情況也只是這些數(shù)字可能隨時調整(例如,使其在250-500之間變化,這樣我們的每一個單元將產生3500DOM個節(jié)點)。但是,給人印象最深的是我們如何改變我們的代碼以適應新的異步系統(tǒng)。我們需要做更多的工作以確保元素的數(shù)字正確生成(該循環(huán)不會永無休止)。這些代碼與我們初始的很相似。注意,我們使用閉包維持代碼片段間的迭代狀態(tài),毫無疑問,不使用閉包,此代碼將更為復雜。

與原來的技術相比,使用該技術有一個明顯的變化。瀏覽器的長時掛起被4個視覺化的頁面更新替代。雖然瀏覽器嘗試著盡可能快得去執(zhí)行這些代碼片段,它也在計時器的每一步操作之后渲染DOM變化(就好像大量的更新)。大多數(shù)情況下,用戶覺察不到此種類型的更新,但記住它們曾經(jīng)發(fā)生過很重要。

有一種情況會使該技術能專門為我服務--我構建的計算大學生日程排列的應用程序。起初,該應用程序是典型的CGI(客戶與服務器交流,服務器計算出日程表之后將其返回)。但我對它作了改變,講所有的日程計算放到客戶端,這是日程計算的視圖:

這些計算的代價相當昂貴(需要遍歷數(shù)以千計的排列以找到正確的答案)。將日程計算分割成實實在在的單元使這一問題得到了解決(用已經(jīng)完成的那部分更新用戶界面)。最后,用戶提交的是快速、反應靈敏、可用性較高的用戶界面。

如此有用的技術常常令人驚奇。你會發(fā)現(xiàn)它經(jīng)常被用于長時運行的程序之中,就像測試箱(我們在這章末尾討論它)。更為重要的是,這種技術向我們顯示了解決瀏覽器環(huán)境的限制是多么的輕而易舉,同時也為用戶提供了豐富的經(jīng)驗。

出處:
責任編輯:
bluehearts

上一頁 下一頁 中央計時器控件

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

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

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

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

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

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

雜⑦雜⑧ Gold NORMANA V2