Image.prefetch 实际上缓存图像多长时间?

sam*_*str 5 caching image prefetch react-native

在 iOS 模拟器上测试时,我似乎每次打开应用程序时都会下载图像。这是预期的行为吗?

这三个图像最初是预取的,每当我引用该 URI 时都会使用缓存,但一旦我重新加载应用程序,一切似乎都会重置。

以下是我如何在组件中使用它的一些片段。

prefetchImages(images) {
  let p = [];

  images.map((url) => {
    p.push(Image.prefetch(url).then(() => {
      console.log('image prefetched:', url);
    }));
  });

  return Promise.all(p);
}

this.prefetchImages([
  'http://domain.com/myimg1.jpg',
  'http://domain.com/myimg2.jpg'
])).then((a) => {
  console.log('all images have been prefetched');
});
Run Code Online (Sandbox Code Playgroud)

我只是想知道即使在应用程序重新启动后图像是否也会被缓存。

理想情况下,我想下载一些资产一次,并将它们保留在磁盘上一段合理的时间。

是否Image.prefetch在幕后检查 HTTP 状态代码?我不知道如何通过模拟器记录网络请求来查看。我想知道应用程序重新启动时是否会收到304 Not Modified,或者是否始终收到200。任何帮助表示赞赏。