如何在发送请求和使用AJAX接收数据之间设置状态

时间:2014-08-01 13:41:35

标签: php jquery ajax

我试图从我在ajax中调用的php函数获取信息所以我想在发送数据和接收它们之间做一个状态

$.ajax({
         //Some code

        })
    // putting a state between the two 
        .done(function( json ) {

          //Some code

        }); 

由于

2 个答案:

答案 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
});