当我希望我的 AJAX 调用是同步的(从而禁止用户在完成之前做任何事情)时,有什么好的屏幕拦截器建议吗?
最佳答案
当您使用同步 JAX (SJAX) 时,您将失去 AJAX 的优势,这在大多数(或所有)情况下会导致糟糕的用户体验。
相反:
尝试使用 modal window在关注的 UI 处于焦点时隐藏页面的其他部分,而不是使用 SJAX 锁定 UI。虽然这是最直接的方法并且现在是异步的,但如果您在服务器响应之前阻止用户执行任何操作,您仍然会失去异步的整个概念。
更好的方法是暂时删除调用 AJAX 的处理函数,以防止对表单/按钮/任何内容进行进一步操作,同时允许在页面的其他部分继续操作。
例如,您有一个表单。您将事件处理程序绑定(bind)到在提交时调用 AJAX 的表单。在提交期间,创建一些逻辑,暂时从表单中删除该处理程序或阻止它调用 AJAX,以便进一步提交不执行任何操作或可能会说“仍在处理/加载”。服务器回复后,重新附加该处理程序以使其工作。
关于javascript - Javascript/AJAX 所需的屏幕拦截代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988980/