javascript - 怎么防止每次输入都去调ajax?
高洛峰
高洛峰 2017-04-10 17:15:29
[JavaScript讨论组]
家庭户号:<input type='text' name='jthh'/>

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
伊谢尔伦

大体的思路是,本来是立即去做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);
}
迷茫

http://www.cnblogs.com/dolphinX/p/3403821.html

函数节流。

怪我咯

监听blur事件,失去焦点再触发ajax动作

PHP中文网

比如说你的家庭号有多长,或者什么规则。判断符合这个长度和规则,然后ajax请求。简单来说就是对家庭号做一个正则验证,符合验证规则,那么ajax请求,不符合不请求。

PHP中文网

setTimeout

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号