gpt4 book ai didi

javascript - 没有回调成功函数的嵌套 AJAX 请求

转载 作者:行者123 更新时间:2023-12-01 02:43:52 26 4
gpt4 key购买 nike

阅读此帖子后 jQuery Ajax Request inside Ajax Request

大家好,我需要对这种情况进行解释。我刚刚研究了我的开发团队前成员的代码,发现代码的许多部分他在其他 ajax 调用中进行异步 ajax 调用。

我的问题是:任何人都可以解释这种做法的优点和缺点以及它是好还是坏做法?

以下是代码示例:

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

脚本1.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 nested ajax calls formatting

最佳答案

这里有一个优点和一个缺点。

优点是:

1) 您进行异步调用,使请求速度更快。您不会等待回调函数,因此也不会等待您的响应,这可能需要一些时间才能返回。你所做的一切都是在后台进行的,而不是“直接”进行。当您调用多个方法并且不希望延迟等待回调时,这是可以理解的。

2) 您可以通过调用获取更多的数据,同时最大限度地减少最终客户端的等待时间。当您有大量数据需要显示并且您希望以最小的努力完成它时,这非常有用。

缺点:

1) 错误处理很痛苦。如果内部调用中出现故障,则需要时间来检测故障是否发生以及发生在哪个方法上。在等待回调时,您可以立即检测到错误发生的位置,因为它会返回成功或错误的响应,

2)如果数据不匹配,则很难回溯并查看丢失部分发生在哪里,您将不得不一一检查每个请求检测和使用开发人员工具和/或 fiddler ,因为这些是最后的异步调用。

3)很容易让客户端付出太多的努力,因为维护这种技术可能会导致调用多个同时协同工作的方法,从而创建客户端过载、使用服务器端代码时锁定线程或数据库等等。

这解释了,您现在可以自己决定在代码中继续使用哪种类型的方法。

关于javascript - 没有回调成功函数的嵌套 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47390325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com