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

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

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

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

一、前提介紹:

某些函數(shù)是用戶主動(dòng)調(diào)用的,但因?yàn)橐恍┛陀^的原因,這些函數(shù)會(huì)嚴(yán)重影響頁面的性能。

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

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

三、解決方案:

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

四、實(shí)現(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é)點(diǎn)都已經(jīng)被創(chuàng)建好
        return clearInterval(t);
      }
      start();
    }, 200); //分批執(zhí)行的時(shí)間間隔,也可以用參數(shù)的形式傳入
  };
};

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

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錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

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

相關(guān)文章

最新評(píng)論