私は BlockUI と jQuery を使用して、サーバー上でアクションを実行するのに時間がかかる場合にページへのアクセスをブロックしています (いくつかのデータベースクエリを実行しますが、それは重要ではありません)。アクションはほとんどが迅速に実行され、時々数秒かかります。不快感を避けるために。点滅:
次のことが可能ですか: - アクションを実行するための ajax リクエストを開始する - UI を見えないようにブロックする - 500 ミリ秒 (設定) 後に答えが見つからない場合は、UI を再ブロックし、グレーアウトするなど - 終了したら /エラーが発生した場合は、UI のブロックを解除します。
そのようなことをどのように行うべきですか、それとも別の方法で行うべきですか、それともすぐに使用できる別のプラグインがありますか?
現在、次のコードを使用して効果を生成しています。
DoRequest = function( param, name ) {
$.blockUI( { message: null, fadeIn: 0, fadeOut: 0, overlayCSS: { opacity: 0.0 } } );
blockUIPhase1 = setTimeout( function(){
$.unblockUI( { fadeOut: 0 } );
$.blockUI( { message: "Even geduld a.u.b.", overlayCSS: { opacity: 0.0 } } );
}, 1000 );
$.ajax( {
url: "screen.json",
dataType: 'json',
success: function( data ) {
// ....
},
complete: function() {
if ( blockUIPhase1 != undefined ) clearTimeout( blockUIPhase1 );
$.unblockUI( { fadeOut: 0 } );
}
} );