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 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
jQuery 解析xml文件
Aug 09 Javascript
js 图片等比例缩放代码
May 13 Javascript
node.js学习总结之调式代码的方法
Jun 25 Javascript
JavaScript弹出窗口方法汇总
Aug 12 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
May 25 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
JavaScript中eval()函数用法详解
Dec 14 Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
jquery实现上传图片功能
Jun 29 jQuery
全面解析JavaScript Module模式
Jul 24 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
python软件都是免费的吗
2020/06/18 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
优秀员工演讲稿
2014/05/19 职场文书
中班上学期个人总结
2015/02/12 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
建国大业观后感600字
2015/06/01 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技