欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript高級函數(shù)應(yīng)用之分時函數(shù)實例分析

 更新時間:2018年08月03日 11:51:30   作者:咕咚蘿卜  
這篇文章主要介紹了JavaScript高級函數(shù)應(yīng)用之分時函數(shù),結(jié)合實例形式分析了javascript通過合理分時函數(shù)應(yīng)用避免瀏覽器卡頓或假死的相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了JavaScript高級函數(shù)應(yīng)用之分時函數(shù)。分享給大家供大家參考,具體如下:

一、前提介紹:

某些函數(shù)是用戶主動調(diào)用的,但因為一些客觀的原因,這些函數(shù)會嚴重影響頁面的性能。

二、應(yīng)用場景:

在短時間內(nèi)往頁面中大量添加DOM節(jié)點顯然會讓瀏覽器吃不消,往往會導致瀏覽器的卡頓甚至假死。

三、解決方案:

以上述添加節(jié)點的例子來說明問題,我們將創(chuàng)建節(jié)點的工作分批進行,比如把1秒鐘創(chuàng)建1000個節(jié)點,改為每隔200毫秒創(chuàng)建8個節(jié)點。

四、實現(xiàn)代碼如下:

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){ //如果全部節(jié)點都已經(jīng)被創(chuàng)建好
        return clearInterval(t);
      }
      start();
    }, 200); //分批執(zhí)行的時間間隔,也可以用參數(shù)的形式傳入
  };
};

五、調(diào)用驗證方法

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();

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

希望本文所述對大家JavaScript程序設(shè)計有所幫助。

相關(guān)文章

最新評論