我正在创建一个类似于教程的应用程序,并且必须用一步一步的教程从防火墙存储中显示图像。目前,我正在使用.getDownloadUrl函数,并使用缓存的网络图像(外部库)和URL显示图像。当步骤完成时,图像将被替换,加载图像至少需要2-3秒,并且会对用户产生相当大的刺激。另外,为了尽量减少延迟,我将云存储位置移到了用户的位置附近,这稍微提高了速度。除了将链接存储在上,或者在开始时将所有URL保存在一个列表中,还有更好的方法来显示图像吗?
发布于 2021-09-12 15:25:05
最常见的方法是压缩/调整图像的大小(或两者都)。通过这样做,您有几个选择:
1.默认情况下您可以显示缩略图,并且只在用户请求时加载完整的图像(或加载到后台)(例如。他们点击有关教程的详细信息)
2.根据屏幕大小加载不同版本的图像(不需要在移动设备上显示用于桌面的图像)
3.将旧图像替换为压缩图像。取决于内容,您可能不需要大于200 on的图片,这是慷慨的。
您还可以考虑使用下一代格式存储图像,例如WebP,因为它被认为是最有效的图像类型之一。但是,还没有在所有的设备上支持它,所以您需要包含一个后备类型。
您说您正在缓存映像,这是减少负载时间的一个好步骤。您还说您将存储位置移到离用户更近的地方。您还可以尝试找到一个更接近用户位置的CDN (可能是递减的)。
您似乎反对将downloadUrls存储在数据库中。这样做会有所帮助,因为您所要做的就是加载映像,而不是为url平桶,然后加载它。
您的用例的另一个潜在解决方案可能是下载本教程的图像,以及下一个解决方案,因此当用户单击next时,图像已经被下载。
不幸的是,你也无能为力。有很多数据被打包到一个图像中,加载和呈现它需要一些时间
https://stackoverflow.com/questions/69151765
复制相似问题