我有一个 .net mvc aspx 页面的以下代码...
///////////////////////
$.blockUI({ message: '
正在处理...请稍候
' });var registerOk = registerNewUser(); var createUserSubscriptionOK = createUserSubscription();
$.unblockUI();
\\\\\\\\\\\\
直到第二个函数完成时才会显示阻止消息。 这两个函数都会收集表单数据,然后对数据库进行异步调用。
我需要立即显示消息,同时触发两个函数,然后一旦两个函数都完成,用户界面就会解锁......
我该怎么做?
感谢您的任何反馈。
最佳答案
您好,我对此没有答案,但我只是想报告一下,我在 Firefox 3.5.9 中看到了同样的问题。
当服务器处理通过表单发送的信息时,我尝试使用 blockUI 显示带有动画 gif 的等待消息。
里面 $("#form").submit(function() { 首先我调用 blockUI: $.blockUI({ message: -图片在这里- 正在处理您的请求,请稍候...' });
然后我准备要发送到服务器的数据并通过 ajax 同步调用将它们发布: $.ajax({ 类型:“帖子”, url: '/submitForm/'+类型名称, 数据:postdata+"&"+sData, 缓存:假, 异步:假 });
最后我解锁了 $.unblockUI();
我注意到它可以与 Konqueror(在 KDE4 中)配合使用,它显示等待窗口,其中带有使背景变暗的动画 gif,并在最后消失。
因此问题可能与 Firefox 有关,或者可能与某些不影响特定浏览器的错误配置有关。
我希望这些信息对某些专家找出实际问题有用。
我也将感谢您的任何反馈。
编辑:
你好,
我不知道这是否仍然相关,但最终我设法让它发挥作用。问题是我正在使用 ajax 进行同步调用(submitForm 调用中的“async: false”位)。 BlockUI 被认为可以使异步调用像同步调用一样工作,即阻塞界面。如果调用已经是同步的,则无需阻止 ui,因为这是同步调用的正常行为!
所以对我来说,只需删除“async: false”部分就可以了。
我希望这会有所帮助。
关于JQuery BlockUI 阻止消息不会立即显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2875074/