我知道一般来说,目标应该是避免async: false
。但是,在这种情况下,我想了解是否值得将它们捆绑在一起以使其正常工作,或者是否可以:
在我网站的注册页面上,我提交了JS/jQuery
验证功能。它有两个AJAX
个查询,一个用于username
(以确保它尚未被采用),另一个用于email
(以确保它们未提交另一位用户已经声明的电子邮件)。在验证功能中,我会检查其中的每一个,以及许多其他内容(密码匹配,检查不是空白等),当其中任何一个弹出时,会显示一条警告消息。
这两个ajax查询都使用async: false
,以确保表单在检查之前不会提交。
我的问题是,
这有多糟糕?如果这是坏事,那么为什么呢?我可以把工作放在一个单独的函数中,检查两个并为每个不同的选项有4个返回值,但这似乎很多......我知道这可能不是一个可靠的编码问题,但我是新编码,并希望确保我理解这里的差异意味着什么。
非常感谢。
答案 0 :(得分:1)
同步HTTP请求在路由中停止后续代码的执行。虽然浏览器在此期间可能不再阻止用户界面,但我们依赖用户的可用带宽,网络可靠性以及服务器当前负载来执行我们的代码。这通常不是一种好的做法。
正如我从这个链接中找到的,这可以帮助你看看这个 https://softwareengineering.stackexchange.com/questions/112551/should-we-still-consider-a-synced-xmlhttprequest-bad-practice
您还应该接受 https://webtide.com/xmlhttprequest-bad-messaging-good/