5

私は次のコードを持っています.netmvcaspxページ..。

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

$ .blockUI({メッセージ: '

処理中...お待ちください

'});

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

$ .unblockUI();

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

ブロックメッセージは、2番目の機能が終了する直前まで表示されません。どちらの関数もフォームデータを収集してから、dbへの非同期呼び出しを行います。

メッセージをすぐに表示し、両方の機能を起動する必要があります。両方が完了すると、UIのブロックが解除されます...

どうすればよいですか?

フィードバックをありがとうございます。

4

2 に答える 2

8

こんにちは、これに対する答えはありませんが、firefox 3.5.9 で同じ問題が発生していることを報告したかっただけです。

サーバーがフォームから送信された情報を処理している間、blockUI を使用してアニメーション GIF で待機メッセージを表示しようとしています。

$("#form").submit(function() { 最初に blockUI を呼び出します: $.blockUI({ message: -image here- Processing your request, please wait...' });

次に、サーバーに送信するデータを準備し、ajax 同期呼び出しで投稿します: $.ajax({ type: "POST", url: '/submitForm/'+typeName, data: postdata+"&"+sData,キャッシュ: false、非同期: false });

そして最後に $.unblockUI(); のロックを解除します。

Konqueror (KDE4) で動作することに気付きました。背景が暗くなる待機ウィンドウが表示され、最後に消えます。

そのため、問題は Firefox に関連している可能性があります。または、特定のブラウザーに影響を与えない設定ミスに関連している可能性があります。

この情報が、実際の問題が何であるかを理解するのに役立つことを願っています。

また、フィードバックをいただければ幸いです。

編集:

こんにちは、

これがまだ関連しているかどうかはわかりませんが、最終的にはうまく機能させることができました。問題は、ajax (submitForm 呼び出しの "async: false" ビット) で同期呼び出しを行っていたことです。BlockUI は、非同期呼び出しを同期であるかのように機能させる、つまりインターフェイスをブロックすると考えられています。呼び出しが既に同期されている場合は、同期呼び出しの通常の動作であるため、UI をブロックする必要はありません。

したがって、私にとっては、「async: false」の部分を削除するだけで機能しました。

これが役立つことを願っています。

于 2010-06-01T09:17:50.143 に答える
7

次のように、fadeIn を 0 に設定して、blockUI の非同期動作を排除してみてください。

$.blockUI({ message: $('#domMessage'), fadeIn: 0 });
于 2013-05-08T11:59:38.673 に答える