这有
alert()帮助,因为这会延迟该函数中其余javascript的处理(从
alert()下到下的所有操作),从而为AJAX请求留下足够的时间来完成。AJAX中的第一个字母代表“异步”,这意味着(默认情况下)响应将在“将来的某个时候”出现,但不是立即出现。
一个补丁修复(你应该 不
执行)是使处理同步(通过改变第三个参数
open()是
false),将停止脚本(以及整个网页)的进一步处理,直至请求返回。这很不好,因为它将有效地冻结Web浏览器,直到请求完成。
正确的解决方法是重新组织代码,以便依赖AJAX请求结果的所有处理都可以进入该
onreadystatechange函数,并且不能在启动AJAX请求的主函数中进行。
通常处理此方法的方法是修改您的DOM(在发送AJAX请求之前)以使表单变为只读状态并显示某种“处理中”消息,然后,如果一切正常,则在AJAX响应处理程序中(服务器正确响应)
并且 验证成功)
submit()在表格上调用,否则使表格再次变为可写状态并显示任何验证错误。



