0

REST API にフックする UITableView を使用しています。

最初の起動時に、アプリは UITableView が表示するデータを取得し、Core Data データベースに解析します。

これは、小さなデータセットでは問題なく機能します。しかし、データセットが 300 ~ 500 アイテムを超えると、パフォーマンスが低下します。ダウンロードと解析が完了するまでに数分かかります。この間、アプリはデッドロックされませんが、ユーザーは解析が完了するまで待たない可能性があります。

次に、ページングを使用することにしました。そのため、最新の 20 項目のみを取得し、ユーザーは [さらに読み込む] をクリックしてさらに戻ることができます。データはキャッシュされます。

これは、1 つの問題を除いてうまく機能しているようです。

読み込みごとにすべてのデータをダウンロードしているわけではないため、アイテムがサーバー上でいつ削除されたのか、アイテムがいつ変更されたのかわかりません (たとえば、タイトルが変更された可能性があります)。

これを解決するための提案を誰かに教えてもらえますか?

ありがとう。

4

1 に答える 1

0

定期的に同様の数のアイテムをリクエストし、それをテーブル ビューに表示します。ただし、私たちの場合、API は JSON を返し、コア データではなくモデル オブジェクトに格納します。データがダウンロードされると、JSON からテーブルに表示されるまでに 1 秒もかかりません。Core Data は、実際にはデータベースではないもの、または過去のユーザー セッション用に保存されていないものには適していません。ただし、実際にトランザクションのどの部分に最も時間がかかっているかを特定する必要があります。私たちの場合、これは API の背後にあるバックエンドですが、一度表示されるとすべてが非常に高速です。

また、私たちの場合、データは約 700K であり、ネットワーク時間をさらに最小限に抑えるために、すぐに GZIP する予定です。

于 2013-01-21T13:53:44.750 に答える