wafBlock阻塞控件和AJAX同步请求一起使用遮罩层不显示的问题

一、问题场景
使用waf.doPost请求设置async:false后不出现遮罩层,自己加上waf.block.show()方法也不出现遮罩层。但是如果把async设置为true后可以弹出遮罩层。
二、问题分析
对于async:true也就是异步请求,框架自带的doPost会自己加上遮罩层。(可以通过配置showBlock属性为取消)
对于async:false同步请求,因为GUI渲染线程与JS引擎线程是互斥的,所以此时渲染线程被阻塞导致遮罩的样式没有被加载出来。而直接设置ajax请求为异步的时候,浏览器会新开一个线程来执行,当然回调的时候还是js的单线程性。只是此时GUI渲染线程不会被阻塞。
三、解决方式
还是用ajax的异步请求。将之前的ajax后代码逻辑统一放到ajax的sucess回调函数中,或者使用deferred对象
自己创建一个遮罩层的dom默认隐藏,当调用jquery的show方法显示出来
wafBlock阻塞控件和AJAX同步请求一起使用遮罩层不显示的问题
一、问题场景 使用waf.doPost请求设置async:false后不出现遮罩层,自己加上waf.block.show()方法也不出现遮罩层。但是如果把async设置为...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇
下一篇



