javascript - jQuery unblockUI() 由 ajax 重定向触发
问题描述
我有一个带有进程属性的图标,因此当我单击该图标时,会触发 ajax 提交。
现在,只要图标的动作正在运行,我就想用 jQuery 的blockUI()
功能阻止页面。它在常规提交(没有 ajax)时工作得非常好,但是在 ajax 提交时页面只会被阻塞很短的时间,因此在第一次提交完成之前进行第二次提交是错误的。
我分析了 Firefox 中的网络流量并注意到以下几点:
在常规提交(没有 ajax)中,POST 方法的答案是“ 302 Found
”,而在 ajax 提交中执行重定向,所以这里的答案是“ 200 OK
”,并带有 answer message
<partial-response><redirect url="myURL"></redirect></partial-response>
。
我调试并意识到在某些时候我最终会在 PrimeFaces 的core.js文件中使用PrimeFaces.ajax.ResponseProcessor.doRedirect(a);
再次调用window.location.assign(b.getAttribute('url'))
.
有了这个分配,blockUI
就丢失了。
我的问题:我该怎么做才能blockUI
在 ajax 重定向中不丢失?
我在我的 xhtml 文件中使用以下代码:
<p:ajaxStatus onstart="onGlobalAjaxStart()" oncomplete="onGlobalAjaxComplete()" />
该函数onGlobalAjaxStart()
执行以下操作:
$.blockUI.defaults.overlayCSS = {};
let message = $('#blockUI').attr('pt:message'); // gets the text for the blockUI message
$.blockUI({ message: message});
函数onGlobalAjaxStart()
调用$.unblockUI()
(除其他外)。
解决方案
推荐阅读
- java - Kafka Connect:类的 NoClassDefFoundException
- ruby-on-rails - 如何允许在控制器中模拟本地范围的变量以接收消息?
- python - 如何从句子中提取单词
- arrays - IOS/Swift:如何在 .firstIndex 中表示 $0 的第一个位置?'无法将'Any'类型的值转换为预期的参数类型'String''
- sql-server - 如何让 SQL Server 连接?
- css - 位置模态相对元素背景IONIC
- reactjs - 防止组件自定义钩子无限重新渲染
- google-data-studio - 使用自定义协议显示超链接
- javascript - 检查表单字段的js函数:不起作用
- azure - 数据工厂 - 将多张工作表转换为 CSV 文件