8

私は流星を使用しています。DOMが更新される前にバッチ更新を行う簡単な方法があるかどうか疑問に思います。

たとえば、複数のレコードを(一度に)更新したい場合:

Collection.update(id1,{..})
Collection.update(id2,{..})
Collection.update(id3,{..})

問題は、3つのアイテムが別々に更新されていることです。したがって、私の場合のDOMが1回ではなく3回再描画されていたとき(3つの更新されたレコードすべてを使用)。

すべてが更新されるまでUIの更新を延期する方法はありますか?

4

2 に答える 2

26

Mongo の更新では、一度に複数のドキュメントを変更できます。複数のドキュメントに一致するセレクターを指定して、multiオプションを設定するだけです。あなたの場合、これは単なる ID のリストですが、任意のセレクターを使用できます。

Collection.update({_id: {$in: [id1, id2, id3]}}, {...}, {multi:true});

これにより、1 回の DB 更新と 1 回の再描画が実行されます。

于 2012-06-22T18:59:44.380 に答える
-1

代わりにサーバーで実行してください。そうすれば、クライアントで複数の DOM 更新が発生する可能性が低くなるように、同期的に実行できます。

最初の 2 つと最後の興味深いコード ビット を参照してください。クライアントがデータベースをいじるのを防ぐ方法と、サーバーでメソッドを定義してクライアントから呼び出す方法が説明されています。

于 2012-06-19T02:44:48.830 に答える