我想知道在ajax回調函數中調用ajax是否是一種很好的做法(可以稱爲嵌套ajax調用?)?反正這是我的例子在ajax回調之後調用ajax是否是一種好習慣?
ajax.js
$(document).ready(function() {
$('#button').click(function() {
var string = 'some string';
$.post('ajax-call.php',
{
string: string
}, function(result) {
if(result == 'success') {
// Second ajax call if result returned is success
$.post('second-ajax.php',
{
variable: 'Some Variable'
}, function(second_result) {
if(second_result == 'yes') {
// Do some thing when the second result returned 'yes'
} else {
// Alert error or something
}
});
} else {
// If first result is not success, show a message
}
});
});
});
所以基本上我有一個要求不同的時間兩個獨立的PHP文件,如果第一個AJAX調用返回「成功」然後繼續撥打第二個AJAX呼叫。或者我應該使用一個ajax調用,一個php腳本,並根據回調的結果決定怎麼做?下面的例子。
ajax2.js
$(document).ready(function() {
$('#button').click(function() {
var string = 'some string';
$.post('ajax-call.php',
{
string: string
}, function(result) {
if(result == 'success') {
// Do something
} else if(result == 'unsuccessful') {
// If first result is not success, show a message
} else {
// Show error message
}
});
});
});
*注:這兩個PHP腳本是相當沉重的,長腳本第一腳本代碼用於驗證Ajax調用,如果一切是正確驗證,繼續執行第二阿賈克斯調用將數據處理成數據庫等等。第一個例子將使腳本更乾淨整潔,但我想知道是否使用嵌套ajax是好習慣?
所有的建議和意見都非常受歡迎。預先感謝您對此有所啓發。
你最好創建一個處理所有邏輯的服務器端腳本,同時調用你的兩個腳本服務器端。然後,您只需要讓一個請求客戶端處理來自服務器的所有相關數據 –
如果您需要2個請求,則鏈接承諾更爲清晰,而不是嵌套Ajax調用。這樣可以以多種方式重複使用呼叫,而目前的情況已將它們硬連線在一起:) –
感謝您的建議。 @ A.Wolff所以你說第二個腳本(ajax2.js)更好? – Charas