zoukankan      html  css  js  c++  java
  • 防抖与节流

    //防抖
    /*
    * 思路:当滚动条在滚动的时候,触发滚动事件,这里设置5毫秒执行一次方法
    * 如果在这5毫秒又触发了一次事件,则会删除上一次的调用
    * debounce方法,先删除上一次的调用,然后再执行setTimeout
    * 防抖的作用保证了滚动事件必须间隔了5毫秒以上执行一次
    * */
    window.onscroll=function () {
    //lazyload()
    debounce(lazyload,window)
    }
    function debounce(method,context) {
    clearTimeout(method.timeout)
    method.timeout = setTimeout(()=>{
    method.call(context)
    },500)
    }
    function lazyload () {
    console.log('onscroll')
    }

    节流


    function lazyload () {
    console.log('onscroll')
    }

    var canCel = true
    window.onscroll = function () {
    if (!canCel) {
    return
    }
    canCel = false
    setTimeout(()=>{
    throttle(lazyload,window)
    canCel = true
    },500)
    }
    function throttle(method,context) {
    method.call(context)
    }
  • 相关阅读:
    spring
    23种设计模式
    get getline
    ping
    Android四大组件
    C++数据结构
    玩转windows便签
    [JavaScript]再谈 this
    [JavaScript]面向对象编程浅析之XJB讲
    [JavaScript]MVC浅析
  • 原文地址:https://www.cnblogs.com/liangshuang/p/9003600.html
Copyright © 2011-2022 走看看