Javascript 在ajax回调之后进行ajax调用是一种好的做法吗?
我想知道在ajax回调函数(可以称为嵌套ajax调用)中创建ajax是一种好的实践吗?无论如何,这是我的例子 ajax.jsJavascript 在ajax回调之后进行ajax调用是一种好的做法吗?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想知道在ajax回调函数(可以称为嵌套ajax调用)中创建ajax是一种好的实践吗?无论如何,这是我的例子 ajax.js $(document).ready(function() { $('#button').click(function() { var string = 'some string'; $.post('ajax-call.php', { string: string }, func
$(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调用返回“success”,那么继续调用第二个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调用以将数据处理到数据库中,依此类推。第一个示例将使脚本更加干净整洁,但我想知道这样使用嵌套ajax是否是一种好的做法
欢迎提出所有建议和意见。提前感谢您在这方面给我的启发。回答问题:
- 如果两个ajax调用都是两个不同的服务,并且第二个调用取决于第一个响应,那么我将这样做
- 如果它们是独立的服务,我将使用Promissions并在两者都解决后进行回调
我要做的就是只打一个电话。如果验证未通过,则返回错误。如果通过,调用服务器端的另一个php并向客户端返回vlid响应。
服务器应该做同样的工作,但您只保存一次从客户端到服务器的数据传输。
那只是一种意见。我希望它对您有所帮助。您最好创建一个服务器端脚本来处理所有逻辑,并在服务器端调用这两个脚本。然后,您只需在客户端发出一个请求来处理来自服务器的所有相关数据。如果您需要两个请求,那么链接承诺比嵌套Ajax调用更为简洁。这使得这些电话可以以多种方式重复使用,而目前的情况将它们永久地固定在一起:)谢谢你的建议@A.Wolff那么你是说第二个脚本(ajax2.js)更好?@TrueBlueAussie你说的链承诺是什么意思?Ajax()返回jQuery承诺。您可以从2个助手函数返回承诺,并使用
.then()
链接调用。与使用回调嵌套Ajax调用相比,更灵活、更易于维护。