91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript性能優化之分時函數的示例分析

發布時間:2021-08-19 10:23:59 來源:億速云 閱讀:140 作者:小新 欄目:web開發

這篇文章主要介紹了javascript性能優化之分時函數的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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

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

在一些開發場景中,我們可能會一次性向文檔中注入上千個節點,在短時間內向瀏覽器中大量添加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);

感謝你能夠認真閱讀完這篇文章,希望小編分享的“javascript性能優化之分時函數的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麦盖提县| 类乌齐县| 英山县| 汨罗市| 乌拉特后旗| 澄江县| 察雅县| 集安市| 古田县| 陇川县| 利川市| 英吉沙县| 岳普湖县| 沙洋县| 华容县| 灵丘县| 纳雍县| 图木舒克市| 大渡口区| 公安县| 元氏县| 香格里拉县| 六安市| 吴旗县| 江源县| 布拖县| 石嘴山市| 都昌县| 即墨市| 娄底市| 江津市| 子洲县| 民勤县| 花莲市| 芮城县| 苏尼特左旗| 白城市| 望奎县| 三河市| 澎湖县| 湄潭县|