我有一個大型數據集(大約3500個對象),它通過HTTP從遠程服務器返回。目前數據正在NSCollectionView中呈現。數據的一個方面是爲服務器提供一個代表數據的小圖片的路徑包(爲簡單起見,請參考縮略圖)。Valueurl在大數組上綁定導致用戶界面不穩定
綁定對於已經返回的數據非常有效,並且通過valueurl綁定綁定圖像很容易。但是,滾動瀏覽數據集時用戶界面非常緩慢 - 這使我認爲NSCollectionView
正在檢索所有圖像數據,而不是用於顯示當前可查看圖像的圖像數據。
我的印象是,Cocoa控件足夠聰明,只能檢索實際通過延遲加載輸出到用戶界面的信息的數據。這當然似乎是NSTableView
的情況 - 但我可能誤導了這個想法。
如果valueurl綁定行爲懶惰,而且,它應該在NSCollectionView
懶洋洋地行事?
我可以創建一個緩存機制(事實上,我已經有了這樣的東西,適用於另一個應用程序 - 如果您有興趣,請參閱我的帖子Populating NSImage with data from an asynchronous NSURLConnection)但我真的不想走這條路線,由於用戶可能經常更改數據集並且可能只需要數據的小部分集合,因此不得不針對此特定實現。
任何建議的方法?
謝謝!
更新
經過一些測試,似乎問題就出現了,因爲通過數據集的滾動動作,導致從服務器請求的每個圖像。一旦所有的圖像在數據集中傳遞完畢,響應速度非常快。
所以問題......有什麼方法可以在滾動時關閉valueurl提取並在滾動完成時將其重新打開?