时间:2021-05-26
分时函数和函数节流的问题不一样,函数节流针对的事件不是用户主动调用的,前面已经提过了。
函数节流的原理是:延迟当前函数的执行,如果该次延迟还没有完成,那么忽略接下来该函数的请求。也就是说会忽略掉很多函数请求。
在一些开发场景中,我们可能会一次性向文档中注入上千个节点,在短时间内向浏览器中大量添加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);以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JavaScript高级函数应用之分时函数。分享给大家供大家参考,具体如下:一、前提介绍:某些函数是用户主动调用的,但因为一些客观的原因,这些函数
网页中的java代码需要写在JavaScript中,里面部分少不了函数,介绍一下JavaScript中常用的函数类型。1、可变函数functionshow(){
本文介绍一个JavaScript验证电子邮箱的函数,相当靠谱。JavaScript验证电子邮箱的函数,源代码如下:functioncheckEmail(text
最近刚阅读完《高性能javascript》,想谈谈对js性能优化的看法。理解有些不同,可能还需要各位多多提醒。话不多说,提到javascript难免会联想到文档
javascript中判断变量是否为数字的方法,这里主要介绍javascript里的isNaN()函数。功能:isNaN()函数用于检查其参数是否是非数字值。语