美文网首页前端
关于按钮的节流

关于按钮的节流

作者: 阿飞不理飞 | 来源:发表于2017-04-21 18:15 被阅读26次

    参考借鉴了彪悍一小兔的javaWeb的入门实战这篇博文。并在基础上进行了进行提炼。

    情景拟定一

    1. 对于某一个按钮进行绑定点击事件[原博文是banner的切换]
    1. 结果用户出现这样的使用情况,一直狂点,狂点,无法控制的手抖点,结果图片卡屏抖来抖去,甚至有可能会卡崩溃

    情景拟定二

    1. 对于一个登录按钮
    1. 网速比较慢,点击了之后没有反应,用户急了又连点好多下
    2. 如果什么都不加控制的情况下,服务器会受到好多次的请求,想一下如果大量用户都这样的话,服务器有可能会炸。

    说白了就是为了解决用户狂点问题
    我们引入了节流[原博文是这样写的]的做法

    具体思路是这样的:

    为用户的点击设定一个<u>反应时间</u> (反应时间过后才会进行提交请求),如果在<u>反应时间</u>之内用户又做了请求,那么将后一个请求覆盖掉前一个请求,这样能够在一定时间内,保证只会响应用户的一个请求。

    具体代码如下:

    jQuery

    var timer = null;
    var btn = $("selector").eq(0);//获取某个按钮jQ对象
    btn.on("click",function(){
      clearTimeout(timer);
      timer = setTimeout(function(){
      //coding 需要进行的操作代码  
      },500);
    //500毫秒后才会进行响应动作,如果期间重新点击,会清空timer然后重新计时500ms
    });
    

    javascript

    var timer = null;
    vat btn = document.getElementById("selector");
    btn.onclick = function(){
      clearTimeout(timer);
      timer = setTimeout(function(){
      //coding
      },500);
    };
    
    

    注意setTimeout clearTimeout
    和setTimeInterval 和 clearTimeInterval
    区分:前者是过了xx时间执行某代码/方法
    后者是每隔xx时间执行某代码/方法

    相关文章

      网友评论

        本文标题:关于按钮的节流

        本文链接:https://www.haomeiwen.com/subject/fqzdzttx.html