怎么停下同步的ajax,同步ajax方法

博主在创建新账户注册表单时遇到了一个问题,即在使用Ajax检查电子邮件可用性时,由于设置为同步(async: false),导致整个前端界面被阻塞。尽管这样能确保功能等待Ajax完成再继续,但同时也使用户体验受到影响。博客讨论了如何解决这个问题,指出应该避免使用同步请求,转而采用异步请求配合回调函数来处理后台响应。
摘要由CSDN通过智能技术生成

我已经创建了一个表单来注册一个新帐户。在这个表格中,我正在检查所选择的电子邮件是否可用,但我使用web服务检查它需要几秒钟。 让我们来看看这美丽的方法:同步ajax方法

function validateEmail(email) {

var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

if(re.test(email) == true) {

var status;

$.ajax({

type: "POST",

url: "ajax/checkEmail.php",

data: "email="+email,

async: false,

cache: false,

timeout: 30000

}).done(function(data) {

$(".spinner").hide();

status = msg;

});

return status;

}

}

我已经被迫把异步为假,除非该功能没有等到我的Ajax来完成,并且返回任何内容。有了这个async:false,他会这样做,但是我的整个前面都被阻塞,直到加载结束(我的鼠标被阻塞,我无法填充任何其他字段)。

我敢肯定,我不是第一个遇到这种情况,所以我指望你的队友:-)!

谢谢!

2014-02-28

banibanc

+1

'async:false' - no! - 你需要一个异步请求,所以如果在后端出现故障,你不会完全锁定客户端! –

+0

因为异步操作*没有返回*。你给他们*待办*功能,称为*回调*。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值