前端模糊搜索

前端模糊搜索如何去过滤用户连续输入的情况!比如连续按下1111但是中间都会请求!我用定时器去模拟假设用户不是连续输入的停歇间隔到达后再去触发请求,如果在这时间里继续按下消除定时器,但是我发现消除定时器的时候定时器里的程序已经触发消除也组织不了程序的执行!求大神指点下思路!怎么去做?

阅读 4.4k
2 个回答

后面触发把前端的定时器取消就可以了。

    function intervalFunc (func, timeout) {
        var timer = null;
        var that = this;
        var wrapper = function() {
            if(timer){clearTimeout(timer)}
            var args = arguments;
            timer = setTimeout(function(){
                func.apply(that, args);
            }, timeout);

        };
        return wrapper;
    }

用 debounce 有很多种实现 比如 lodash.debounce

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题