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

javascript性能優(yōu)化之分時(shí)函數(shù)的介紹

 更新時(shí)間:2018年03月28日 14:17:42   作者:KaRaoXake  
本篇文章主要介紹了javascript性能優(yōu)化之分時(shí)函數(shù)的介紹,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

分時(shí)函數(shù)和函數(shù)節(jié)流的問(wèn)題不一樣,函數(shù)節(jié)流針對(duì)的事件不是用戶主動(dòng)調(diào)用的,前面已經(jīng)提過(guò)了。

函數(shù)節(jié)流的原理是:延遲當(dāng)前函數(shù)的執(zhí)行,如果該次延遲還沒(méi)有完成,那么忽略接下來(lái)該函數(shù)的請(qǐng)求。也就是說(shuō)會(huì)忽略掉很多函數(shù)請(qǐng)求。

在一些開(kāi)發(fā)場(chǎng)景中,我們可能會(huì)一次性向文檔中注入上千個(gè)節(jié)點(diǎn),在短時(shí)間內(nèi)向?yàn)g覽器中大量添加DOM節(jié)點(diǎn)可能會(huì)讓瀏覽器吃不消,結(jié)果往往會(huì)讓瀏覽器卡頓或吃不消,解決方案之一便是使用分時(shí)函數(shù)(timeChunk)。

timeChunk分時(shí)函數(shù)讓創(chuàng)建節(jié)點(diǎn)的工作分批進(jìn)行,比如一秒鐘創(chuàng)建1000個(gè)節(jié)點(diǎn),改為每個(gè)200ms創(chuàng)建10個(gè)節(jié)點(diǎn)。具體timeChunk函數(shù)封裝如下:

function timeChunk( arr, fn, count){//arr 數(shù)組 fn操作函數(shù) count每次操作數(shù)量
  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)
  }
}

應(yīng)用:

加入我們要在文檔中添加1000個(gè)節(jié)點(diǎn),可以利用timeChunk分時(shí)函數(shù)每200ms連續(xù)添加20個(gè)節(jié)點(diǎn)。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果

    JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)淘寶京東6位數(shù)字支付密碼效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • JS運(yùn)算符簡(jiǎn)單用法示例

    JS運(yùn)算符簡(jiǎn)單用法示例

    這篇文章主要介紹了JS運(yùn)算符簡(jiǎn)單用法,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript各種邏輯運(yùn)算符、數(shù)學(xué)運(yùn)算符、關(guān)系運(yùn)算符等相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • 學(xué)習(xí)掌握J(rèn)avaScript中this的使用技巧

    學(xué)習(xí)掌握J(rèn)avaScript中this的使用技巧

    這篇文章主要幫助大家學(xué)習(xí)并熟練掌握J(rèn)avaScript中this的使用技巧,感興趣的小伙伴們可以參考一下
    2016-08-08
  • layui多圖上傳實(shí)現(xiàn)刪除功能的例子

    layui多圖上傳實(shí)現(xiàn)刪除功能的例子

    今天小編就為大家分享一篇layui多圖上傳實(shí)現(xiàn)刪除功能的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • HTML+CSS+JS實(shí)現(xiàn)完美兼容各大瀏覽器的TABLE固定列

    HTML+CSS+JS實(shí)現(xiàn)完美兼容各大瀏覽器的TABLE固定列

    本文給大家分享的是使用HTML+CSS+JS實(shí)現(xiàn)完美兼容各大瀏覽器的TABLE固定列的方法和示例,非常的實(shí)用,特別是在BS架構(gòu)的企業(yè)級(jí)應(yīng)用,有需要的小伙伴可以參考下。
    2015-04-04
  • js實(shí)現(xiàn)精確到毫秒的倒計(jì)時(shí)效果

    js實(shí)現(xiàn)精確到毫秒的倒計(jì)時(shí)效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)精確到毫秒的倒計(jì)時(shí)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • JavaScript實(shí)現(xiàn)返回頂部按鈕案例

    JavaScript實(shí)現(xiàn)返回頂部按鈕案例

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)返回頂部按鈕案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題

    淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 最新評(píng)論