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实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
微信小程序 登陆流程详细介绍
Jan 17 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
Mar 14 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
JS使用对象的defineProperty进行变量监控操作示例
Feb 02 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 Javascript
vue遍历对象中的数组取值示例
Nov 07 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
Jul 21 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
PHP概率计算函数汇总
2015/09/13 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
jQuery操作css样式
2017/05/15 jQuery
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
浅析python中SQLAlchemy排序的一个坑
2017/02/24 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
python散点图实例之随机漫步
2018/08/27 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
专科文秘应届生求职信
2013/11/18 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
管理专员自荐信
2014/01/26 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
后勤主管岗位职责
2014/03/01 职场文书
美术社团活动总结
2014/06/27 职场文书
2014年个人年终总结
2015/03/09 职场文书
听证会主持词
2015/07/03 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python