本文實例講述了JavaScript高級函數應用之分時函數。分享給大家供大家參考,具體如下:
一、前提介紹:
某些函數是用戶主動調用的,但因為一些客觀的原因,這些函數會嚴重影響頁面的性能。
二、應用場景:
在短時間內往頁面中大量添加DOM節點顯然會讓瀏覽器吃不消,往往會導致瀏覽器的卡頓甚至假死。
三、解決方案:
以上述添加節點的例子來說明問題,我們將創建節點的工作分批進行,比如把1秒鐘創建1000個節點,改為每隔200毫秒創建8個節點。
四、實現代碼如下:
var timeChunk = function(ary, fn, count){ var obj,t; var len = ary.length; var start = function(){ for(var i=0;i<Math.min(count ||1, ary.length );i++){ var obj = ary.shift(); fn(obj); } }; return function(){ t = setInterval(function(){ if(ary.length === 0){ //如果全部節點都已經被創建好 return clearInterval(t); } start(); }, 200); //分批執行的時間間隔,也可以用參數的形式傳入 };};
五、調用驗證方法
var ary = ['aa','bb','cc',.....];var renderFriendList = timeChunk( ary, function(n){ var div = document.createElement('div'); div.innerHTML = n; document.body.appendChild(div);},8);renderFriendList();
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答