在旧版本的jQuery中。有时我使用jQuery ajax并设置async:false来等待来自ajax的响应。但是在今天,async:false已被弃用。我不知道如何使用其他而不是async:false。请建议我。
[我使用jQuery时的代码ajax async:false]
function check(id) {
var check = '';
jQuery.ajax({
type : 'post',
url : 'test.php',
data : 'id='+id,
cache:false,
async:false,
success:function(data) {
if(data == 'good') {
check = 'pass';
}
else
if(data == 'bad') {
check = 'not_pass';
}
}
});
if(check == 'pass') {
alert('Pass');
}
else
if(check == 'not_pass') {
alert('Not pass');
}
}
在上面的代码中,我使用了async:false来等待test.php的响应。 在test.php但不是async之后:不推荐使用false。
答案 0 :(得分:0)
async: false
总是意味着很少使用,因为它在等待来自服务器的响应时阻止所有用户输入。异步处理结果要好得多,例如:
jQuery.ajax({
type : 'post',
url : 'test.php',
data : 'id='+id,
cache:false
})
.done(function(data) {
if (data == 'good') {
alert('Pass');
}
else if (data == 'bad') {
alert('Not pass');
}
})
.error(function() {
//handle the error...
});
请注意,我还使用了新的Promises接口(done()
和error()
回调)。如果您愿意,success
和error
选项仍有效。