【问题标题】:JQuery BlockUI blocking message does not immediately showJQuery BlockUI 阻塞消息不会立即显示
【发布时间】:2011-02-21 22:28:05
【问题描述】:

我有以下代码一个.net mvc aspx 页面...

////////////////////

$.blockUI({ 消息:'

处理中...请稍候

' });

var registerOk = registerNewUser(); var createUserSubscriptionOK = createUserSubscription();

$.unblockUI();

\\\\\\\\\\\\\\

直到第二个函数完成时才会显示阻止消息。 这两个函数都收集表单数据,然后对数据库进行异步调用。

我需要立即显示消息,让两个功能都触发,然后一旦两者都完成,用户界面就会被解锁......

我该怎么做?

感谢您的任何反馈。

【问题讨论】:

    标签: jquery blockui


    【解决方案1】:

    您好,我对此没有答案,但我只是想报告我在 Firefox 3.5.9 中遇到了同样的问题。

    我正在尝试使用 blockUI 在服务器处理通过表单发送的信息时显示带有动画 gif 的等待消息。

    在里面 $("#form").submit(function() { 首先我调用blockUI: $.blockUI({ message: -image here- 正在处理您的请求,请稍候...' });

    然后我准备要发送到服务器的数据并使用 ajax 同步调用发布它们: $.ajax({ 类型:“发布”, url: '/submitForm/'+typeName, 数据:postdata+"&"+sData, 缓存:假, 异步:假 });

    最后我解锁了 $.unblockUI();

    我注意到它可以与 Konqueror(在 KDE4 中)一起使用,它会显示带有动画 gif 的等待窗口,使背景变暗,并在最后消失。

    所以问题可能与 firefox 有关,或者可能与不影响特定浏览器的某些错误配置有关。

    我希望这些信息对某些专家找出实际问题有用。

    我也将感谢任何反馈。

    编辑:

    你好,

    我不知道这是否仍然相关,但最后我设法让它发挥作用。问题是我正在使用 ajax 进行同步调用(submitForm 调用中的“async: false”位)。 BlockUI 被认为使异步调用像同步一样工作,即阻塞接口。如果调用已经同步,则无需阻塞 ui,因为这是同步调用的正常行为!

    所以对我来说,只需删除“async: false”部分就可以了。

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      尝试通过将 fadeIn 设置为 0 来消除 blockUI 的异步行为:

      $.blockUI({ message: $('#domMessage'), fadeIn: 0 });
      

      【讨论】:

      • 这解决了我的问题。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      相关资源
      最近更新 更多