0

当我处理 jQuery ajax 时,我总是想到它的选项“异步”,我知道这是什么意思(异步 JavaScript 和 XML),但有时我需要在语句完成之前使用 ajax,例如表单验证,当我签入数据库时​​,如果用户名存在,我总是添加 ajax 选项“async: false”。这是一个不好的方法吗?我需要你的建议:)

我的代码:

var content = $("#content");

function ajaxResponse()
{
    var r = null;
    $.ajax({
        type: 'POST',
        url: 'data.html',
        async: false,
        success: function(data) {
            r = data;
        }
    });
    return r;
}

setInterval(function(){ 
    content.text(ajaxResponse());
},1000);
4

3 回答 3

1

这是我将如何编码,除了我不会发布到 html 页面而是 LOAD 一个 html 页面

var content = $("#content"), tId;

function ajaxResponse() {
    $.ajax({
        type: 'POST',
        url: 'data.php',
        success: function(data) {
            content.text(data);
            tId = setTimeout(ajaxResponse,1000); // run again
        }
    });
}

使用 html 页面更新内容:

content.load("somepage.html");
于 2013-09-04T14:11:02.670 回答
1

如果您想使用 ajax 进行客户端验证,那么也许您应该考虑同时进行:

  • 禁用提交按钮
  • ajax 异步调用

然后一旦触发 ajax 回调,如果验证成功,您可以启用提交按钮。如果验证失败,您可以显示错误消息。

于 2013-09-04T14:11:54.550 回答
0

使用 ajax 异步:

function ajaxResponse()
{
    $.ajax({
    type: 'POST',
    url: 'data.html',
    async: false,
    success: function(data) {
        r = data;   //code here will not be run until the ajax request is complete
    }
  });
}


// script will pause here until ajax request is complete if async is true;
于 2013-09-04T14:12:56.333 回答