gpt4 book ai didi

caching - 如何在 Flutter 中更改图像缓存的缓存持续时间(包 : flutter_cached_network_image & flutter_cache_manager)

转载 作者:行者123 更新时间:2023-12-04 17:33:40 63 4
gpt4 key购买 nike

我一直在尝试为flutter中的图片添加缓存,但是一直无法设置缓存时长。

我试过使用 cached_network_image包,我有一个自定义缓存管理器,我将缓存持续时间覆盖为 2 分钟(而不是将其作为默认值,即 30 天),但图像被缓存超过 2 分钟,它甚至还在1 天后缓存)。

当我简单地使用 Image.network 组件时,图像没有被缓存。

我的自定义缓存管理器:

class ImageCacheManager extends BaseCacheManager {
static const key = "libCachedImageData";

static ImageCacheManager _instance;

factory ImageCacheManager() {
if (_instance == null) {
_instance = new ImageCacheManager._();
}
return _instance;
}

ImageCacheManager._() : super(key, maxAgeCacheObject: Duration(minutes: 2));

Future<String> getFilePath() async {
var directory = await getTemporaryDirectory();
return p.join(directory.path, key);
}
}

预期:图像的缓存时间不会超过我指定的时间(例如 2 分钟)

实际:图像缓存的时间比我指定的时间长(至少 36 小时)

最佳答案

当我想更改要缓存的资源的 maxAge 时,我最近遇到了类似的问题。问题是,在内部 cache_manager 会考虑带有 max-age 值的缓存控制响应 header 来设置缓存期限。如果资源没有返回 max-age 响应 header ,它默认将其设置为 7 天,我们没有针对它的配置。对于 hack,我们可以在链接到自定义缓存管理器的 customHttpGetter 方法中设置响应 header ,让缓存使用它进行缓存。我试过这么做,效果很好!

https://referbruv.com/blog/posts/caching-get-request-calls-using-flutter-cache-manager

关于caching - 如何在 Flutter 中更改图像缓存的缓存持续时间(包 : flutter_cached_network_image & flutter_cache_manager),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57589958/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com