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常见数据验证插件大全
Aug 03 Javascript
基于javascript实现页面加载loading效果
Sep 15 Javascript
javaScript嗅探执行神器-sniffer.js
Feb 14 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
js实现图片无缝循环轮播
Oct 28 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
详解 javascript对象创建模式
Oct 30 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 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
输出控制类
2006/10/09 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
vue多次循环操作示例
2019/02/08 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
python获取整个网页源码的方法
2020/08/03 Python
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
对标管理实施方案
2014/03/12 职场文书
原材料检验岗位职责
2014/03/15 职场文书
个人委托书格式
2014/04/04 职场文书
三字经教学反思
2014/04/26 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏