【问题标题】:Does React Native cache remote images?React Native 是否缓存远程图像?
【发布时间】:2016-06-17 18:11:09
【问题描述】:

React Native 是否缓存远程图像?

我有一个应用程序可以远程下载数十张图像。这些图像似乎缓存在我的应用程序中,但是,我不确定是操作系统默认这样做,还是 React Native 正在缓存它们。

如果是 React Native,有没有办法自定义它们的缓存时间?还是远程服务器定义的?

【问题讨论】:

    标签: android ios caching react-native


    【解决方案1】:

    更新

    图像由本机图像模块缓存。请查看this 了解更多信息。

    它不是直接的 ReactNative,它只是 fetch 做缓存的工作。但是,fetch 的行为也依赖于服务器设置(cache 标题大部分时间)。有关 fetch API 的更多信息(关于如何在请求标头中定义 cache 的很好的示例)here

    【讨论】:

      【解决方案2】:

      您可能对我的高阶组件模块感兴趣,它为原生 组件添加了与性能相关的图像缓存和“永久缓存”功能。它是跨平台的,而 的标准缓存功能在 android 和 ios 上是不同的,并且除了具有未记录的行为之外似乎发生了很大变化。

      React Native Image Cache HOC

      Tl;DR 代码示例:

      import imageCacheHoc from 'react-native-image-cache-hoc';
      const CacheableImage = imageCacheHoc(Image);
      
      export default class App extends Component<{}> {
        render() {
          return (
            <View style={styles.container}>
              <Text style={styles.welcome}>Welcome to React Native!</Text>
              <CacheableImage style={styles.image} source={{uri: 'https://i.redd.it/rc29s4bz61uz.png'}} />
              <CacheableImage style={styles.image} source={{uri: 'https://i.redd.it/hhhim0kc5swz.jpg'}} permanent={true} />
            </View>
        );
        }
      }
      

      有什么方法可以自定义它们的缓存时间

      上述代码示例中的第一个图像将被缓存,直到总本地缓存增长到超过 15 MB(默认情况下),然后最先删除缓存的图像,直到总缓存再次低于 15 MB。

      第二个图像将永久存储到本地磁盘。人们将其用作与您的应用一起运送静态图像文件的替代品。

      【讨论】:

        猜你喜欢
        • 2019-11-30
        • 1970-01-01
        • 2023-03-17
        • 2014-12-17
        • 1970-01-01
        • 2018-09-19
        • 2019-09-26
        • 2019-02-20
        • 1970-01-01
        相关资源
        最近更新 更多