我正在使用jQuery,並在$(document).ready()
函數中調用$.ajax()
。但是,我意識到要做AJAX調用,我不使用DOM中的任何東西。此外,該Ajax調用可能需要第二個或兩個(或更多)服務器端。所以,出於這兩個原因,我希望儘快完成它,並且我正在考慮重構我的代碼,使其看起來像這樣(這將在HTML文件頂部附近的<script>
塊中) :是否立即調用JQuery.ajax,但在document.ready之前不調用回調?
var someGlobal="whatever";
...
function onReply(response){
//Do something
}
...
$.ajax({
'url':"call_me.json",
'type':'POST',
'data':{x:someGlobal,y:"Dude!"}
})
.fail(function(jqXHR,status){
console.log("AJAX ERROR:" + status);
})
.done(onReply);
...
然而,onReply()
回調確實需要已建成的DOM(同上爲.fail()
回調)。所以我不希望onReply
在$(document).ready()
運行之前被調用。有沒有什麼內置jQuery,讓我保證將是這種情況?
P.S.使用jQuery 1.10.x
非常類似的問題(一旦你想使用deferreds):http://stackoverflow.com/questions/6177187/can-i-get-a -jquery-deferred-on-document-ready(但沒有一個答案會考慮如果ajax調用失敗會發生什麼情況;它們也不會在頁面完全加載之前啓動ajax調用,並且我想立即啓動它。) –