jQuery Ajax选项 - 我需要建议

时间:2013-09-04 14:05:19

标签: javascript jquery ajax

当我处理jQuery ajax时,我总是想到它的选项“async”,我知道这意味着什么(异步JavaScript和XML),但有时我需要在语句完成之前使用ajax,例如表单验证,当我检查时在db中,如果username存在,我总是在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);

3 个答案:

答案 0 :(得分:1)

以下是我将如何编码,除了我不会发布到HTML页面而是加载一个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");

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

使用ajax async:

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;