HTTP経由でリモートサーバーから返される大きなデータセット(約3500個のオブジェクト)があります。現在、データはNSCollectionViewに表示されています。データの1つの側面は、データを表す小さな画像のサーバーへのパスパックです(簡単にするためにサムネイルを考えてください)。
バインディングは、すでに返されたデータに対して素晴らしく機能し、valueurlバインディングを介して画像をバインドするのは簡単です。ただし、データセットをスクロールするときのユーザーインターフェイスは非常に遅くなります。これによりNSCollectionView
、現在表示可能な画像の表示に使用される画像データだけでなく、すべての画像データを取得しているように見えます。
Cocoaコントロールは、遅延読み込みによって実際にユーザーインターフェイスに出力されている情報のデータのみを取得するのに十分スマートであるという印象を受けました。これは確かに当てはまるようですNSTableView
が、私はこの考えを誤解している可能性があります。
valueurlバインディングは遅延して動作する必要があり、さらに、それは遅延して動作する必要がありNSCollectionView
ますか?
キャッシングメカニズムを作成することはできますが(実際、別のアプリケーション用にそのようなものがすでに用意されています。非同期NSURLConnectionからのデータをNSImageに入力することに興味がある場合は、こちらの投稿を参照してください)。ユーザーはデータセットを頻繁に変更する可能性があり、データの小さなサブセットのみが必要になる可能性があるため、この特定の実装を行う必要はありません。
提案されたアプローチはありますか?
ありがとう!
アップデート
さらにテストを行った後、データセットをスクロールするアクションによって各画像がサーバーから要求されるため、問題が発生したようです。すべての画像がデータセットに渡されると、応答は非常に高速になります。
質問...スクロール中にvalueurlフェッチをオフにし、スクロールが終了したときに再びオンにする方法はありますか?