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 父窗口控制子窗口的行为-打开,关闭,重定位,回复
Apr 20 Javascript
js动画(animate)简单引擎代码示例
Dec 04 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
Jul 01 Javascript
js调用屏幕宽度的简单方法
Nov 14 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
JS实现加载和读取XML文件的方法详解
Apr 24 Javascript
Seajs源码详解分析
Apr 02 Javascript
JS数组的常用方法整理
Mar 31 Javascript
react中的DOM操作实现
Jun 30 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
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
用webpack4开发小程序的实现方法
2019/06/04 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
vue中activated的用法
2021/01/03 Vue.js
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Python复制文件操作实例详解
2015/11/10 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
使用pip安装python库的多种方式
2019/07/31 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
基层干部十八大感言
2014/01/19 职场文书
党员自我剖析材料
2014/08/31 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
高二数学教学反思
2016/02/18 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
Elasticsearch 配置详解
2022/04/19 Java/Android
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript