通过实例讲解JS如何防抖动

 更新时间:2019年06月15日 10:21:28   作者:Unknw  
这篇文章主要介绍了通过实例讲解JS如何防抖动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下

前言

这道题目经常与事件触发器同时存在,为了考察面试者在一些具体业务流程上(信息流,搜索框输入查询)等,能否综合的考虑实现思路。

题目

在某些信息列表中一般采用瀑布流,滚动一屏时加载相应的数据,请思考如何避免连续下拉时而产生的问题(可能是页面崩溃,也可能是巨卡无比)。

一般情况下,如果碰到这样的面试题,防抖动机制,就能很好的解决,这方面最早的应用实践还是Twitter,开发者写了一篇博客,详细的阐述了如何解决这样的问题。那么,说到防抖动,其核心内涵在于延迟处理,也就是将一系列的事件处理程序全部延迟,保障推送进来的第一次事件处理。

event.on('scroll', function(e){ 
var fun; 
return function(){ 
if(fun) clearTimeout(fun);
fun = setTimeout(function(){ 
// console.log('1')
},500);
}
}());

这是最常见的一种方式,如果scroll的次数较多时,可以先将真实的函数放置在定时器中。

接下来我们将它抽象一下:

function de(something,delay){ 
var fun; 
return function(){ 
if(fun) clearTimeout(fun);
fun = setTimeout(function(){ 
something();
},delay);
}
}
function scrollToList(){
}
event.on('scroll', de(scrollToList,1000))
event.on('scroll', de(scrollToList,2000))

显然这是一个弱爆了的处理,那有没有更好的方式呢?有,比如节流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈js中的attributes和Attribute的用法与区别

    浅谈js中的attributes和Attribute的用法与区别

    这篇文章主要介绍了浅谈js中的attributes和Attribute的用法与区别,attributes可以获取一个对象中的一个属性,attributes 属性返回指定节点属性的集合,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 使用原生js+canvas实现模拟心电图的实例

    使用原生js+canvas实现模拟心电图的实例

    下面小编就为大家带来一篇使用原生js+canvas实现模拟心电图的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • webpack 如何解析代码模块路径的实现

    webpack 如何解析代码模块路径的实现

    这篇文章主要介绍了webpack 如何解析代码模块路径的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 轻松实现javascript图片轮播特效

    轻松实现javascript图片轮播特效

    这篇文章主要帮助大家轻松实现javascript图片轮播特效,点击标签还可以实现图片切换,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • JavaScript增加数组中指定元素的5种方法总结

    JavaScript增加数组中指定元素的5种方法总结

    在JS中数组方法是非常重要且常用的的方法,在此整理总结一番,下面这篇文章主要给大家介绍了关于JavaScript增加数组中指定元素的5种方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 基于Bootstrap里面的Button dropdown打造自定义select

    基于Bootstrap里面的Button dropdown打造自定义select

    这篇文章主要介绍了基于Bootstrap里面的Button dropdown打造自定义select的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • uni-app微信小程序使用echarts的详细图文教程

    uni-app微信小程序使用echarts的详细图文教程

    为了兼容小程序Canvas,ECharts提供了一个小程序的组件,用这种方式可以方便地使用ECharts,下面这篇文章主要给大家介绍了关于uni-app微信小程序使用echarts的相关资料,需要的朋友可以参考下
    2022-10-10
  • ECMAScript6中Map映射的基本概念与常用方法

    ECMAScript6中Map映射的基本概念与常用方法

    Map是ES6中新增的数据结构,Map类似于对象,但普通对象的 key 必须是字符串或者数字,而 Map 的 key 可以是任何数据类型,这篇文章主要给大家介绍了关于ECMAScript6中Map映射的基本概念与常用方法,需要的朋友可以参考下
    2021-07-07
  • Layui表格监听行单双击事件讲解

    Layui表格监听行单双击事件讲解

    今天小编就为大家分享一篇Layui表格监听行单双击事件讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 一个JavaScript处理textarea中的字符成每一行实例

    一个JavaScript处理textarea中的字符成每一行实例

    这篇文章主要与大家分享一个JavaScript处理textarea中的字符成每一行实例,很简单,但很实用,大家可以看看
    2014-09-09

最新评论