AJAX验证在jQuery中“冻结”
AJAX validation "freezes" in jQuery?
function checkuser(user) {
var ret = false;
$.ajax({ type:'POST', url:'user.php',
async:false,
data:{'user':user},
success:function (data) {
if (data == 1) ret = true
} });
return ret;
}
我使用验证器来验证字段。它似乎在每次按键时都会触发此功能,并且在 ajax 调用竞争之前用户无法继续键入。我真的不确定在这里做什么。
例如,如何使函数每两秒运行不超过一次?
你需要摆脱async:false
但你还需要修改你的代码以异步工作。同步性是导致 UI "冻结"的原因。
也许您可以尝试设置一个超时,该超时将在按下输入上的一个键后运行 2 秒,但如果按下另一个键,它会重新启动该计时器。所以从本质上讲,它只会在没有击键的两秒钟后。
var validateTimeout;
$('#target').keydown(function() {
clearTimeout(validateTimeout);
validateTimeout = setTimeout(function(){checkuser(user);},2000);
});
您需要更新用户查核 ajax 调用,以便有一个更智能的回调来异步工作:
function checkuser(user) {
$.ajax({ type:'POST', url:'user.php',
async:false,
data:{'user':user},
success:function (data) {
if(data == 1){
//something to indicate sucess
}else{
//something to indicate failure
}
} });
}
您可以使用限制插件限制呼叫:
j查询油门插件
相关文章:
- 用于发现哪个JS/jQuery脚本正在冻结页面的工具或技术
- Firefox在调用函数(jquery)时冻结
- 仅限 Firefox/IE - 元素 show() jquery 后冻结的 gif 动画
- AJAX验证在jQuery中“冻结”
- jQuery AJAX 文件上传冻结
- 使用 jQuery 在客户端上验证失败后删除冻结面板
- 在博客帖子中加载jQuery会导致它冻结
- 为什么jQuery Mobile Simple Dialogue在用户点击过快时会冻结
- JQuery可排序列表,其中一些元素按顺序冻结
- Jquery脚本正在冻结浏览器,但正在工作
- 如何在jquery flot上向下滚动时冻结、固定标签
- jQuery幻灯片和停止问题:动画元素随着鼠标的快速移动而冻结
- 如何冻结“启动”按钮在jquery动画
- 使用jquery插件进行分页,当加载50k时记录导致整个系统冻结.如何解决这个问题
- jQuery动画宽度冻结iPad
- jquery中的多个Ajax请求会冻结浏览器
- JQUERY/JavaScript -故障代码导致谷歌浏览器冻结
- 冻结jquery中的表头
- JQuery UI对话框:导致冻结的密码输入
- 使用JQuery冻结CSS3转换