开发者社区> 问答> 正文

怎么防止每次输入都去调ajax?

家庭户号:<input type='text' name='jthh'/>
现在是想要实现我输入家庭户号ajax查一些东西,然后我用keyup监听,但是我不想每次输入都去查,想等用户输完等待一段时间后在去查,这个要怎么实现呢?

展开
收起
小旋风柴进 2016-05-31 08:29:21 1766 0
1 条回答
写回答
取消 提交回答
  • 大体的思路是,本来是立即去做doAjax()的,现在把它放到一个setTimeout()的延时任务。然后,每次触发keyup的时候用clearTimeout()取消上一个延时任务。 这样,当键盘事件连续、快速地触发的时候,是没有用的,只有当键盘输入停下,并过了至少一点时间之后,才会真正去执行ajax任务。

    比如原本是:

    function doAjax() {
        // ajax
    }
    
    function handleKeyUp(event) {
        doAjax();
    }
    修改为:
    
    var timeFlag = null;
    
    function doAjax() {
        // ajax
    }
    
    function handleKeyup(event) {
        clearTimeout(timeFlag);
        timeFlag = setTimeout(doAjax, 1000);
    2019-07-17 19:21:11
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载