2

このアプリの作業: https://billiving-qa.azurewebsites.net/spa1/#/invoices

一部の http 呼び出しはキャッシュする必要がありますが、何らかの理由でこれが機能していません。

 function getStatuses() {
            return $http.get('/v1/definitions/status', { cache: true })
            .then(function (response) {
                return response.data;
            })
        }

ネットワークを見ると、フラグが設定されているにもかかわらず、「v1/definitions/status」がキャッシュされていないことがわかります。

ありがとう

4

1 に答える 1

5

実際、私が見る限り、それはキャッシングです。

Angular の内部キャッシュは、アプリケーション自体の内部のメモリに物を隠しているだけで、ブラウザのキャッシュとは異なります。Angular のキャッシュは、アプリケーションが同じ URL を複数回要求しようとするときに機能します。たとえば、ルート間で前後に移動するときなどです。次に、別の http 要求を実行する代わりに、キャッシュから応答を取得します。

それがしないのは、ブラウザに物事をキャッシュすることです。ページを完全にリロードすると、アプリケーションと、Angular の内部キャッシュなど、メモリ内にあるすべてのものもリロードされます。したがって、この場合、新しいリクエストが作成されます。

ページがリロードされてもキャッシュされるようにブラウザ レベルのキャッシュが必要な場合は、サーバーからのキャッシュ ヘッダーでそれを処理する必要がありますが、Angular はそれを制御できません。

例として、リクエストを 1 時間キャッシュするには

cache-control: public, max-age=3600
于 2015-10-01T12:41:38.973 に答える