2016-04-05 3 views
0

JQueryのshow()を使用して、関数が(多少の重度の処理で)実行中にビジー状態のインジケーターを表示しようとしています。ただし、機能が終了したときにのみインジケータが表示され、機能の最後にあるhide()のコメントを外すと、インジケータは表示されません。JQuery show()は、関数の終了後にのみ動作します。

私はdisplay: none;を使用して最初にインジケータを非表示にしています。

var convert = function() { 
    $("#working").show(); 
    // ... 
    $("#working").hide(); 
}; 
+0

私は提供されたコードが十分である疑いを更新する機会を与えるために、小さなタイマーを使用することです!実行可能なデモ/スニペットや[JSFiddle](https://jsfiddle.net/)を共有できますか? – Rayon

+0

ポストコードまたはjsfiddleので、私たちはあなたにソリューションを提供することができます。 –

+0

JavaScriptで、非同期でないものはゼロ時間で実行されるとみなすことができます –

答えて

2

ブラウザはスクリプトの実行とスクリプトの実行を含むシングルスレッドアプリケーションのように機能するためです。

ディスプレイを設定していても、現在のスクリプトの実行が完了するまで実際のレンダリングは行われません。

一つの簡単なハックは、大規模なタスクを遅らせ、レンダリング操作をUI

var convert = function() { 
    $("#working").show(); 
    setTimeout(function() { 
    // ... 
    $("#working").hide(); 
    }); 
}; 
+0

ありがとうございました。 – user3170702

関連する問題