我正在使用JQuery when。语法如下所示:
$.when(
// Get the HTML
$.get("/feature/", function(html) {
globalStore.html = html;
}),
// Get the CSS
$.get("/assets/feature.css", function(css) {
globalStore.css = css;
}),
// Get the JS
$.getScript("/assets/feature.js")
).then(function() {
// Add CSS to page
$("<style />").html(globalStore.css).appendTo("head");
// Add HTML to page
$("body").append(globalStore.html);
});
我的问题
答案 0 :(得分:2)
deferred.then( doneCallbacks, failCallbacks )可以使用
等故障过滤器$.when(
// Get the HTML
$.get("/feature/", function(html) {
globalStore.html = html;
}),
// Get the CSS
$.get("/assets/feature.css", function(css) {
globalStore.css = css;
}),
// Get the JS
$.getScript("/assets/feature.js")
).then(function() {
// Add CSS to page
$("<style />").html(globalStore.css).appendTo("head");
// Add HTML to page
$("body").append(globalStore.html);
}, function(){
//there is an exception in the request
});
要设置超时,您可以使用timeout
选项。
您可以全局使用
jQuery.ajaxSetup({
timeout: 5000
})
或使用$.ajax()
代替短版$.get()
和timeout
选项
答案 1 :(得分:0)
我认为这是因为呼叫是异步的。使用时:
$.ajax({
url: "file.php",
type: "POST",
async: false,
success: function(data) {
}
});
通话是同步的。