Javascript jqueryajax选项-我需要建议

Javascript jqueryajax选项-我需要建议,javascript,jquery,ajax,Javascript,Jquery,Ajax,当我使用jQueryAjax时,我总是考虑它的选项“async”,我知道这是什么意思(异步JavaScript和XML),但有时在语句完成之前我需要ajax,例如表单验证,当我签入数据库时,如果用户名存在,我总是添加ajax选项“async:false”。这样做不好吗?我需要你的建议:) 我的代码: var content = $("#content"); function ajaxResponse() { var r = null; $.ajax({ type

当我使用jQueryAjax时,我总是考虑它的选项“async”,我知道这是什么意思(异步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);

下面是我将如何编写代码,除非我不会发布到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");

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

  • 禁用提交按钮
  • ajax调用是异步的
一旦ajax回调被触发,如果验证成功,您可以启用submit按钮。如果验证失败,则可以显示错误消息。

使用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;

你的具体问题是什么?这完全取决于你在做什么。如果没有特定问题,我们将无法帮助您。通常情况下:是的。如果您使用的是
async:false
,则通常是做错了什么。你应该在回调中处理数据。感谢大家的重要回答,我记下了,我将用真正的aynchronous编写代码,非常感谢;)@mplungjan注释解释了异步属性的用法只是出于兴趣,这段代码是否会导致连续递归(每秒调用一次,因此递归级别的数量不会突然爆炸,而是稳步增长)?是的,就像我从示例中获取的setInterval一样,但是,如果响应时间超过一秒钟,我的代码比setInterval更安全,因为setInterval没有等待结果,我没有抱怨,只是尝试学习…;-)谢谢你让我知道!