JavaScript高级函数应用之分时函数实例分析


Posted in Javascript onAugust 03, 2018

本文实例讲述了JavaScript高级函数应用之分时函数。分享给大家供大家参考,具体如下:

一、前提介绍:

某些函数是用户主动调用的,但因为一些客观的原因,这些函数会严重影响页面的性能。

二、应用场景:

在短时间内往页面中大量添加DOM节点显然会让浏览器吃不消,往往会导致浏览器的卡顿甚至假死。

三、解决方案:

以上述添加节点的例子来说明问题,我们将创建节点的工作分批进行,比如把1秒钟创建1000个节点,改为每隔200毫秒创建8个节点。

四、实现代码如下:

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){ //如果全部节点都已经被创建好
        return clearInterval(t);
      }
      start();
    }, 200); //分批执行的时间间隔,也可以用参数的形式传入
  };
};

五、调用验证方法

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

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
javascript parseInt与Number函数的区别
Jan 21 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
JavaScript中数据结构与算法(四):串(BF)
Jun 19 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
Jan 14 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
Dec 09 Javascript
vue基础之v-bind属性、class和style用法分析
Mar 11 Javascript
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
详解javascript中的Error对象
Apr 25 Javascript
mpvue小程序仿qq左滑置顶删除组件
Aug 03 #Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 #Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
Aug 03 #Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 #Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 #Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 #Javascript
小程序tab页无法传递参数的方法
Aug 03 #Javascript
You might like
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php之curl设置超时实例
2014/11/03 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
分页栏的web标准实现
2011/11/01 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
Django中使用Celery的方法示例
2018/11/29 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
python Tensor和Array对比分析
2020/01/08 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
大学应届生求职简历的自我评价
2013/10/08 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
房产电话营销开场白
2015/05/29 职场文书
班主任培训研修日志
2015/11/13 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
Java Spring读取和存储详细操作
2022/08/05 Java/Android