2016-03-04 16 views
6

ネイティブキャッシュのリモートイメージに反応しますか?ネイティブキャッシュのリモートイメージに反応しますか?

私は数十枚の画像を遠隔からダウンロードするアプリを持っています。これらの画像は私のアプリにキャッシュされているようだが、デフォルトでそれを実行しているOSであるか、React Nativeでキャッシュしているのかは分からない。

リアクションネイティブの場合、キャッシュされる期間をカスタマイズする方法はありますか?あるいは、リモートサーバーはそれを定義していますか?

答えて

3

ReactNativeは直接ではありません。キャッシュの作業を行うのはfetchです。しかし、fetchの動作もサーバー設定(ほとんどの場合cacheヘッダー)に依存します。フェッチAPIの詳細(リクエストヘッダーでcacheを定義する方法の良い例)here

0

パフォーマンスに関連する画像キャッシュと「永続キャッシュ」機能をネイティブの<Image>コンポーネントに追加する、より上位のコンポーネントモジュールに興味があるかもしれません。それはクロスプラットフォームですが、<Image>の標準キャッシング機能は、アンドロイドと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未満になるまでキャッシュされますn。

第2のイメージはローカルディスクに永続的に保存されます。人々はこれをあなたのアプリで静的な画像ファイルを送る代わりにドロップとして使用します。

関連する問題