如何缓存来自 HTTP 响应的响应?

how to cache response from HTTP response?

如何在 ionic 3 angular 4 中缓存来自 HTTP 请求的响应或缓存来自拦截器的响应?如果数据发生变化,它会自动调用 API.

方法有很多种,一种是IONIC Native HTTP

https://ionicframework.com/docs/native/http

安装

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

import { HTTP } from '@ionic-native/http/ngx';

constructor(private myhttp: HTTP) {}


    this.myhttp.get('http://ionic.io', {}, {})
      .then(data => {

        console.log(data.status);
        console.log(data.data); // data received by server
        console.log(data.headers);
        ///here is response
      })
      .catch(error => {

        console.log(error.status);
        console.log(error.error); // error message as string
        console.log(error.headers);

      });

或者您可以使用 Angular HTTPCLIENT

https://angular.io/guide/http

if data changed it automatically call API.

这不是 REST API 的工作方式(假设您使用的是 REST)。 您可以通过将请求放入本地存储来自行缓存请求,也可以使用 standard plugin。 这样您仍然可以执行请求,但您首先检查您是否已经在本地拥有数据。如果是这种情况,数据将简单地从本地存储中提取,并且不会执行 HTTP 请求。

如果您真的想要实时更新,您将需要一种服务器端方式让您的客户知道数据已更改,但这是一个完全不同的问题。