jquery ajax請求同步與異步問題

默認發送ajax請求都是異動,以下設置爲同步(async:false),此時是要等到ajax的回調函數success執行完畢後,才執行這個ajax之後的代碼(即alert(333);return;).如此時需要根據data==1而結束整個調用這個ajax的方法,就不能在success判斷return了,此時的return僅僅只是

結束這個ajax請求而不是調用這個ajax的方法,後面代碼(即alert(333);return;)還是會執行下去。若想根據ajax的data判斷是否結束方法,

則需要在ajax外面判斷,先把ajax請求後data賦值給外部變量message,再用message==1判斷是否結束此方法。

PS:一定要設置成同步,否則message有可能爲undefined就無法判斷了

(同步一定會等到回調函數success執行完後再執行ajax後續代碼,異步的不要說回調函數success執行完,就是有可能ajax請求都沒有發在它之後代碼就執行了!)

var message;

$.ajax({

             type: "GET",

             url: "test.json",

     async:false,

             data: {username:$("#username").val(), content:$("#content").val()},

             dataType: "json",

             success: function(data){

                         //if(data==1) return;

message = data;

                      }

         });

if(message==1) return;

alert(333);

return;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章