0

Sencha Touch リスト (Ext.dataview.List) に関連付けられたストアを更新すると、リスト UI が (MVVM のように) 自動的に更新されます。

websocket 経由で大量のデータを受信するモバイル アプリを作成しており、ストアは頻繁に更新されています。1 つのフィールドが変更されただけでも、リスト アイテム全体が (itemTpl を使用して) 再レンダリングされていると思います。ご想像のとおり、これは信じられないほど遅く、私のアプリは深刻な遅れをとっています。

リストによるストアのこの「監視」を無効にし、innerHTML を使用してリスト項目を自分で更新したいと思います。これを行う方法はありますか?または、UI を更新せずにストアを更新する方法はありますか?

もう 1 つのオプションは、データを調整することですが、これは最後の手段です。

4

1 に答える 1

1

suspendEvents および resumeEvents メソッドを利用したいとします。これらは Observable mixin を介して提供され、ストアとリストの両方で使用できます。suspendEvents を使用してイベント (リストの更新など) を停止し、resumeEvents を使用してリッスンを再開します。イベントを再開すると、一時停止中に発生したイベントがキューに追加され、再度発生するため、これらのイベントを破棄する場合は、suspendEvents(false) を実行する必要があります。

innerHTML を介して手動で更新するのは非常に面倒です。ストアをロードしている間は suspendEvents を実行することをお勧めします。リストを更新する場合はいつでも、resumeEvents を実行して手動でストアから更新することをお勧めします。

詳細については、このリンクを参照してください。

于 2013-01-16T04:07:05.863 に答える