当我处理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);
答案 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回调,如果验证成功,您可以启用提交按钮。验证失败,然后您可以显示错误消息。
答案 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;