Javascript jqueryajax选项-我需要建议
当我使用jQueryAjax时,我总是考虑它的选项“async”,我知道这是什么意思(异步JavaScript和XML),但有时在语句完成之前我需要ajax,例如表单验证,当我签入数据库时,如果用户名存在,我总是添加ajax选项“async:false”。这样做不好吗?我需要你的建议:) 我的代码: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
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调用是异步的
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没有等待结果,我没有抱怨,只是尝试学习…;-)谢谢你让我知道!