javascript - 在 while 循环中使用 jQuery AJAX 请求

标签 javascript jquery ajax

以下代码将要求用户输入他们的姓名,将其发送到处理脚本(保存到数据库、验证等)并返回响应:

var invalid = true;
while (invalid) {
    var name = prompt("Enter your name");
    $.ajax({
        type: "POST",
        url: "save.php",
        data: {
            "name": name
        }
    }).done(function(e) {
        //in this example, save.php returns "invalid" if the input did not pass validation
        invalid = e === "invalid";
    });
}

您可以看到我想要的一般想法,但问题是这样的:即使我使 AJAX 调用同步,它也不会阻止循环继续。在 done 函数中放置一个 console.log 表明循环运行了大约 200 次,直到我的服务器给出响应。

服务器对用户的输入进行大量计算——我在这里仅以名称为例。这不能在客户端完成。我如何实现这个简单的初学者设计模式,让我想起我在 C# 中的多线程噩梦?

最佳答案

function validate(e)
{
    if(e === "invalid")
        setTimeout(submitName, 0);
}

function submitName()
{
    var name = prompt("Enter your name");
    $.ajax({
        type: "POST",
        url: "save.php",
        data: {
            "name": name
        }
    }).done(validate);
}

关于javascript - 在 while 循环中使用 jQuery AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299670/

相关文章:

javascript - Angular ng-controller 似乎在 route 不起作用

javascript - 有没有办法将对象而不是数组发送到后端? -ReactJS

javascript - 即时创建嵌套数组

php - jQuery/Ajax : Error Handling

javascript - 使用 php+mysql 和 jquery ajax post 填充三个后续选择列表

javascript - 是否可以通过 JavaScript 将数组提交到 AJAX?

javascript - Firebase 字符串在字段末尾匹配

javascript - 为可拖动的 div 制作 div 溢出

javascript - Bootstrap 选项卡未加载 jQuery 和 Ajax

javascript - 如何复制和提醒子元素