データの読み込み中にモーダルパッケージを使用してMeteorに読み込み警告を表示しようとしました。Meteor Collection.find()は作業中にアプリケーション全体をブロックします
'change .filterPieChart': function(evt){
Modal.show('loadingModal');
/* a little bit of work */
var data = MyCollection.find().fetch(); // takes 3 or 4 seconds
/* lot of work */
Modal.hide('loadingModal');
}
通常、アラートは機能の最初に表示され、最後に消えます。しかし、ここでは、MyCollection.find()の読み込み時間後にアラートが表示され、その後は消えます。関数の先頭に表示する方法は?
私はModal.showを反応変数に置き換えようとしましたが、結果は同じです。反応変数の変化する値は関数の最後に検出されます。
ありがとうございます。しかし、私の場合はどのようにrequestAnimationFrameを使用して理解していない。私はそれを呼び出すと思いますか? –
MyCollection.find()で新しいスレッドを使用したり、コールバックでアラートを非表示にすることはできません。 –
残念ながら、[_web workers_](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers)を使用しない限り、JSはシングルスレッド化されています。 'requestAnimationFrame'については、フルフレームがペイントされていることを確認するために、それを2回使用する必要があります。しかし、あなたのモーダル・ショーがアニメーションを使用していると、それが妨げられる可能性があるので、上記の答えに示されている修正遅延や、モーダルの表示が終了したイベントを使用する必要があります。 – ghybs