私は、Internet Explorer 8(ご存じのように、HELLと互換性があります)と互換性が必要なWebアプリケーションを作成しています。問題は、後でPHPコードで処理され、ページを更新するファイルをアップロードしていることです。私は処理されたファイルを持っているので、テーブルにデータを挿入するためにそのファイルを使用したので、このデータを挿入している間にプロセスバーとUIをブロックする必要があります(各行に対して別のPHPプロセスを呼び出す必要があります)。ドキュメントの準備UIをブロックする
問題は次に、私はそのUIをブロックしたい、私はロジックとすべての互換性の問題を解決している、 5日間の作業後はUIをブロックできません。これは、アイデアを簡単にするために最低限のコード(私たちが必要とするすべてをカプセル化している)である:
明らか$(document).ready({
(...)
$("#title").html('some text');
$("#bar").html('');
$.blockUI({message: $('#window'),css:{width:'303px'}});
go = true;
while (go){
$.ajax({<ASYNC FALSE AJAX CALL});
if (!file.lines) go = false;
<update progress>
}
$.unblockUI();
(...)
});
、$ .blockUIは(私がブロック解除されるまで)メインスレッドをブロックし、パーソナライズされたウィンドウを表示、その必要があります次のコードを持っていることである。
<div id="window" style="display: none; cursor: default">
<div id="title_bar">
<div id="titulos">some text</div>
<div id="cerrar"></div>
</div>
<div id="body">
<img src="an icon"
alt="enviando" border="0" width="33" height="33" id="enviar">
<p class="titulo" id='title'></p>
<p class="texto" id='bar'></p>
<br />
</div>
</div>
私は問題は - 私は、メインスレッドではないスレッド上で、そのブロックを実行することだと思う、と私は本当にブロックのUIを傾けます。私はすべての情報を処理するまでユーザを待たせなければならないので、ブロックが必要です。
ありがとう、私はあなたが私を助けてくれることを願っています。
「async:false」を削除してみてください。これを使用することは非常に悪い習慣であり、UIが更新されず、使用している 'blockUI'プラグインに干渉することになります。 –
エラーが発生しました。あなたはフィドルを持っていますか? –
'async:false'を取り除くことはできません。悪い習慣だと思いますが、このコードでは@RoryMcCrossanが必要です。私は何のエラーもありません。開発者コンソールには、async:falseの典型的な警告があります。 –