Firebase Storage Flutter 显示图片加载时间过长
Firebase Storage Flutter Displaying images takes too long to load
我正在创建一种教程应用程序,必须通过分步教程显示来自 firebase 存储的图像。目前我正在使用 .getDownloadUrl 函数并使用带 URL 的缓存网络图像(外部库)显示图像。该步骤完成后图像将被替换,加载图像至少需要 2-3 秒,这可能会让用户非常恼火。此外,为了最大限度地减少延迟,我将云存储位置移动到用户所在的位置附近,这略微提高了速度。除了将链接存储在 Cloud Firestore 上或在开始时将所有 URL 保存在一个列表中之外,是否有更好的显示图像的方法。
最常见的方法是 compress/resize(或两者)您的图像。通过这样做,您有几个选择:
1.您可以默认显示缩略图,只有在用户请求时才加载完整图像(或在后台加载)(例如,他们点击详细信息关于教程)
2. 根据屏幕尺寸加载不同版本的图像(您不需要在移动设备上显示适用于桌面的图像)
3. 用压缩后的图片替换旧图片。根据内容的不同,您可能不需要大于 200kb 的图片,这已经很慷慨了。
您还可以考虑使用下一代格式存储图像,例如 WebP,因为它被认为是最高效的图像类型之一。但是,它还不是在所有设备上都受支持,因此您需要包含一个后备类型。
您说您正在缓存图像,这是减少加载时间的一个很好的步骤。您还说您将存储位置转移到离用户更近的位置。您还可以尝试找到 甚至 更接近您用户位置的 CDN(可能会减少 returns)。
您似乎反对将 downloadUrls 存储在您的数据库中。这会有所帮助,因为您所要做的就是加载图像,而不是 ping url 的存储桶然后加载它。
您的用例的另一个潜在解决方案可能是下载本教程以及下一个教程的图像,因此当用户单击下一步时,图像已经下载。
遗憾的是,您无能为力。图像中包含大量数据,加载和渲染它需要一些时间
我正在创建一种教程应用程序,必须通过分步教程显示来自 firebase 存储的图像。目前我正在使用 .getDownloadUrl 函数并使用带 URL 的缓存网络图像(外部库)显示图像。该步骤完成后图像将被替换,加载图像至少需要 2-3 秒,这可能会让用户非常恼火。此外,为了最大限度地减少延迟,我将云存储位置移动到用户所在的位置附近,这略微提高了速度。除了将链接存储在 Cloud Firestore 上或在开始时将所有 URL 保存在一个列表中之外,是否有更好的显示图像的方法。
最常见的方法是 compress/resize(或两者)您的图像。通过这样做,您有几个选择:
1.您可以默认显示缩略图,只有在用户请求时才加载完整图像(或在后台加载)(例如,他们点击详细信息关于教程)
2. 根据屏幕尺寸加载不同版本的图像(您不需要在移动设备上显示适用于桌面的图像)
3. 用压缩后的图片替换旧图片。根据内容的不同,您可能不需要大于 200kb 的图片,这已经很慷慨了。
您还可以考虑使用下一代格式存储图像,例如 WebP,因为它被认为是最高效的图像类型之一。但是,它还不是在所有设备上都受支持,因此您需要包含一个后备类型。
您说您正在缓存图像,这是减少加载时间的一个很好的步骤。您还说您将存储位置转移到离用户更近的位置。您还可以尝试找到 甚至 更接近您用户位置的 CDN(可能会减少 returns)。
您似乎反对将 downloadUrls 存储在您的数据库中。这会有所帮助,因为您所要做的就是加载图像,而不是 ping url 的存储桶然后加载它。
您的用例的另一个潜在解决方案可能是下载本教程以及下一个教程的图像,因此当用户单击下一步时,图像已经下载。
遗憾的是,您无能为力。图像中包含大量数据,加载和渲染它需要一些时间