簡體   English   中英

沒有回調成功功能的嵌套AJAX請求

[英]Nested AJAX requests without a callback success function

閱讀此線程后, Ajax請求中的jQuery Ajax請求

大家好,我需要對這種情況進行解釋。 我剛剛從事開發團隊前成員的代碼工作,發現代碼的許多部分在其他ajax調用中進行了異步ajax調用。

我的問題是 :誰能解釋這種做法的優缺點,以及它是好是壞?

這是代碼示例:

// first ajax (starting ajax call)
$.ajax({
    url: "script1.php", 
    type: "POST", 
    data: {paramFisrtAjax: "first-ajax"},
    success: function(response) {
       alert(response);
    }
});

script1.php

<script>    
// second ajax
$.ajax({
    url: "script2.php", 
    type: "POST", 
    data: {paramFirstAjax: "<?= $_POST['paramFisrtAjax'] ?>", paramSecondAjax: "second-ajax"},
    success: function(response) {
        alert(response);
    }
});
</script>
<?php 
// some operations on database server
echo "page2 operations with param: paramFirstAjax-> {$_POST['paramFirstAjax']}"; 
?>

script2.php

<?php 
// some operations on database server
echo "page3 operations with params: firstParam -> {$_POST['paramFisrtAjax']} and secondParam-> {$_POST['paramSecondAjax']}";
?>

有人告訴我這不是一件好事,因為我認為正確的方法是使用success的回調函數。 像這樣: jQuery嵌套的ajax調用格式

這里有一個優點和缺點。

優點是:

1) 進行異步調用,使請求更快 您無需等待回調函數, 因此不必等待可能需要一段時間才能返回的響應 您在后台執行所有操作,而不是“直截了當”。 當您調用多個方法並且您不希望延遲等待回調時,這是可以理解的。

2) 您可以通過呼叫獲取更多的數據,同時最大程度地減少最終客戶端的等待時間。 當您要顯示大量數據並且想要以最小的努力來制作數據時,這很有用。

缺點:

1)錯誤處理是一種痛苦。 如果內部調用中發生故障,則需要花費一些時間來檢測故障發生的原因以及使用哪種方法 等待回調時,您可以立即檢測到錯誤發生的位置,因為它將返回成功或錯誤的響應,

2)如果數據不匹配,則很難回溯並查看丟失部分的發生位置, 您將必須逐個處理每個請求以檢測和使用開發人員工具和/或提琴手 ,因為這些是最后的異步調用。

3)很容易在客戶端上投入過多的精力,因為維護這種技術可能會導致調用多個可以同時工作的方法,從而在客戶端上產生重載,在工作時鎖定線程或DB與服務器端代碼等。

這就說明了,您現在可以自己決定要在代碼中進一步使用哪種類型的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM