国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

javascript性能優化之分時函數的介紹

2024-05-06 16:43:22
字體:
來源:轉載
供稿:網友

分時函數和函數節流的問題不一樣,函數節流針對的事件不是用戶主動調用的,前面已經提過了。

函數節流的原理是:延遲當前函數的執行,如果該次延遲還沒有完成,那么忽略接下來該函數的請求。也就是說會忽略掉很多函數請求。

在一些開發場景中,我們可能會一次性向文檔中注入上千個節點,在短時間內向瀏覽器中大量添加DOM節點可能會讓瀏覽器吃不消,結果往往會讓瀏覽器卡頓或吃不消,解決方案之一便是使用分時函數(timeChunk)。

timeChunk分時函數讓創建節點的工作分批進行,比如一秒鐘創建1000個節點,改為每個200ms創建10個節點。具體timeChunk函數封裝如下:

function timeChunk( arr, fn, count){//arr 數組 fn操作函數 count每次操作數量  var obj,    t;  var start = function(){    var len = Math.min(count||1,arr.length);    for(var i=0; i < len; i++){      obj = arr.shift();      fn(obj)    }  };  return function(interval){    t = setInterval(function(){      if(arr.length==0){        return clearInterval(t)      };      start();    },interval||200)  }}

應用:

加入我們要在文檔中添加1000個節點,可以利用timeChunk分時函數每200ms連續添加20個節點。

var arr = [];for(var i = 1; i <= 1000; i++){  arr.push(i)}var renderLists = timeChunk(arr,function(i){  var div = document.createElement('div');  div.innerHTML = i;  document.body.appendChild(div);},20);renderLists(200);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扶余县| 年辖:市辖区| 西青区| 武邑县| 佳木斯市| 上犹县| 岳阳市| 安义县| 通辽市| 桦甸市| 英德市| 新闻| 无锡市| 古蔺县| 尼玛县| 克什克腾旗| 南汇区| 白山市| 丹凤县| 施秉县| 铜川市| 醴陵市| 卓资县| 汕尾市| 阜南县| 若羌县| 阳原县| 威远县| 汾阳市| 广昌县| 个旧市| 科尔| 通辽市| 黄浦区| 尉犁县| 高陵县| 晋中市| 新兴县| 基隆市| 漳州市| 高台县|