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 相关文章推荐
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
May 07 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
AngularJS 单元测试(一)详解
Sep 21 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
Aug 14 Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
JS使用Dijkstra算法求解最短路径
Jan 17 Javascript
vue 兄弟组件的信息传递的方法实例详解
Aug 30 Javascript
Vue.js watch监视属性知识点总结
Nov 11 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
jquery插件开发方法(初学者)
2012/02/03 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
angularJS 入门基础
2015/02/09 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
在Python中使用成员运算符的示例
2015/05/13 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
python取代netcat过程分析
2018/02/10 Python
Django中反向生成models.py的实例讲解
2018/05/30 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
教育学专业实习生的自我鉴定
2013/11/26 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
啤酒节策划方案
2014/05/28 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python