我有一个大的数据集(约3500点的对象),其从通过HTTP远程服务器返回。目前,该数据是在NSCollectionView呈现。数据的一个方面是一个路径包到服务器进行表示的数据(认为缩略图为简单起见)的小图像。

绑定工作飞驰对于已经返回的数据,并经由valueurl结合结合的图像是容易做到的。然而,通过数据集滚动时,用户界面是非常缓慢 - 这使我认为NSCollectionView是检索所有的图像数据,而不是仅仅用于显示当前能够观察的图像的图像数据

我的印象是,可可对照是智能足以只对实际正在通过延迟加载输出到用户界面中的信息中检索数据。这当然似乎是NSTableView的情况 - 但是我可以在这种思想的误导

应该valueurl结合行为懒惰地,而且,它应在懒惰的NSCollectionView行动?

我可以创建一个缓存机制(其实我已经有地方这样的事情的另一个应用程序 - 在这里看到我的帖子,如果你有兴趣的 NSImage中填充与异步NSURLConnection的数据),但我真的不希望走这条路,如果我没有为这个特定执行作为用户可能会改变的数据集常常和可能只希望小的子集的数据。

任何建议的方法?

谢谢!

<强>更新

在多一些测试它看来问题的出现是因为通过所述数据集的滚动动作导致从服务器请求的每个图像。一旦所有的图像都在数据已经经过设定的响应速度非常快。

所以问题...有没有关闭valueurl取而滚动,把它回来时,滚动已完成了什么办法?

有帮助吗?

解决方案

我的解决办法是使用自定义的高速缓存机制,如一个我已经使用的另一个应用程序。该问题表现,因为当您滚动尚未被下载过去的图像,控制触发本身去获取尚未下载的非-文件。

在下载的图像是本地可用的,并且因此滚动速度规格化。该解决方案是检查以查看是否该图像是本地可用的并且在图像在后台下载呈现替代应用束图形。一旦图像已被下载,更新与所述图像替换从束传来存根图像模型。

此叶片UI在一个非常敏感的状态贯穿,叶与相互作用并允许图像的自定义背景管理的能力给用户。

当然,这本来是不错的,如果可可ID这一切对我来说,但之后会有什么留给我做什么? : - )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top