我知道这听起来已经与SO上的几个问题类似,但是它们不知如何以最佳实践说服了我。
现在我知道,这是使用AJAX时非常简单的建议,从没有(永远)选择Synchronized XHR。但是,如果该XHR是某些验证条件的一部分,那么如果成功,则必须打开一些弹出窗口。调用XHR时,用户事件已结束。如果浏览器运行良好,则在回调中打开的弹出窗口将永远不会发生。
在这种情况下,最好的解决方法应该是最佳实践。
我读过的一种干净的解决方案是立即打开弹出窗口并更改其在回调中的行为。现在,这可能会继续工作,需要保留额外的状态,直到我们进入回调为止。有没有比这更好的解决方案了?还是应该在不引起太多麻烦的情况下坚持使用同步XHR?
最佳答案
我读过的一种干净的解决方案是立即打开弹出窗口并更改其在回调中的行为。
当我看到您问题的标题时,这就是我的答案。
现在,这可能会继续工作,需要保留额外的状态,直到我们进入回调为止。
在创建弹出窗口的函数中将回调声明为闭包。它将继承所有状态,并且浏览器不会锁定。