显示包含图像的listview-直接从url还是预下载?

显示包含图像的listview-直接从url还是预下载?,listview,asp.net-web-api,xamarin.forms,Listview,Asp.net Web Api,Xamarin.forms,我有一个Xamarin表单应用程序来处理备件仓库。我有一个类“Part”,它包含所有相关属性以及零件的图像。目前,大约有3000个独特的零件,几乎所有零件都附有图片。数据和图像由ASP.NET web api中内置的web api服务提供。 现在我想添加一个表单来浏览包含其图像的零件列表。还将有一个搜索框按关键字过滤列表。我希望它尽可能快,因此我想知道我应该坚持哪种方法: 更简单-当用户打开表单时,直接从web api加载所有项目 在应用程序启动时将所有部分异步加载到sqlite本地db+下载图

我有一个Xamarin表单应用程序来处理备件仓库。我有一个类“Part”,它包含所有相关属性以及零件的图像。目前,大约有3000个独特的零件,几乎所有零件都附有图片。数据和图像由ASP.NET web api中内置的web api服务提供。 现在我想添加一个表单来浏览包含其图像的零件列表。还将有一个搜索框按关键字过滤列表。我希望它尽可能快,因此我想知道我应该坚持哪种方法:

  • 更简单-当用户打开表单时,直接从web api加载所有项目
  • 在应用程序启动时将所有部分异步加载到sqlite本地db+下载图像并将其存储在内存中的某个位置。例如,我只能加载上次同步日期后创建或修改的部件。多亏了这一点,在本地存储的数据镜像形式中会有一些东西,并在应用程序启动时进行异步更新
    第二种选择可能有点过分,我不知道,我没有类似问题的经验。另一方面,预加载所有内容并从内存中显示/搜索它可能会有更高的性能。我开发的应用程序是由一个封闭的小团体使用的,而且部件不会经常更改。此外,我希望在一次会话中可以多次浏览/查询零件的表单,并且互联网覆盖率并不完美。所有这一切似乎也有利于选项2,但我想了解您的看法。

    首先,异步方法必须是您在这项工作中的朋友,才能获得良好的性能

    有一些技巧我想和你们分享,因为我有相同的经验,新闻应用程序有更多的图片和无尽的新闻:D

    1-glideX:该库将提供非常好的图像性能

    2-编译绑定:使用Xamarin表单中的这个新选项,您将避免绑定带来的任何麻烦,并且您的列表在运行时会更快,但请记住,您将需要更多的构建时间。“取决于您的电脑性能”

    3-CollectionView:取决于listview和CollectionView之间的评测性能,CollectionView获胜,但如果您有相同的数据模板,请记住将项目大小设置为测量第一个项目

    4-分页:您可以使用CollectionView中的“增量加载数据”选项来创建本地加载的数据或从rest api加载的数据的分页

    5-Rx:如果你想要一个非常好的搜索体验,你必须访问Rx.net,或者使用本地数据或RESTAPI调用

    6-Asynchronous:您必须尽可能使用异步方法,以避免死锁


    最后,我无法告诉您在加载所有数据然后从中查询、一次列出所有项目或使用api中的分页模式加载之间的最佳选择,但如果您遵循上述提示,您将获得性能优异的令人敬畏的列表。

    “我想了解您的意见”-因此不鼓励提出征求意见的问题。但是你可能想退房谢谢,真不敢相信我没听说过这个图书馆。。绝对值得考虑所有的提示,这比我预期的要多。检查GlideX后,我发现它比ffImageLoading更快,但后者有更多的选项。我想我将首先使用GlideX和从服务器加载的图像,这取决于它的性能,稍后我可能会切换到ffImageLoading。我看到它不支持占位符/加载图像,但可能有一个解决方法。在判断哪种方法更受欢迎之前,我一定要把手弄脏