我试图从我在ajax中调用的php函数获取信息所以我想在发送数据和接收它们之间做一个状态
$.ajax({
//Some code
})
// putting a state between the two
.done(function( json ) {
//Some code
});
由于
答案 0 :(得分:0)
@Daan答案根本不正确,因为AJAX默认是异步的,那么你不确定.ajaxStop是否会在ajax调用结束后执行。 @GuyT评论我认为这是一个很好的观点。
我有两种变体:
第一个:在调用ajax之前执行startWait()
,在stopWait()
和.done()
语句中执行.fail()
。看:
startWait();
$.ajax({
//setup the ajax call
})
.done(function(res){
//do some code
stopWait();
})
.fail(function(res){
//do some code
stopWait()
});
第二个是在startWait()
内执行stopWait()
和.done()
:
$.ajax({
//setup the ajax call
})
.done(function(res){
startWait();
//do some code
stopWait();
});
如果你问我,我更喜欢第一个,因为我确保在运行ajax时显示一个加载器(或运行代码),并且当所有结束时即使它掉落也停止它。
对于你的问题,第一个也是更好的选择。
答案 1 :(得分:-2)
正如你在评论中所说,你想要某种等待时间,请使用ajaxStart和ajaxStop。
$( document ).ajaxStart(function() {
//ajax start create a loader or something
});
$.ajax({
}).done(function(data) {
});
$( document ).ajaxStop(function() {
//stop the loader
});