組み込みのAngularJSキャッシュI.Eを使用してHTTPリクエストをキャッシュします。AngularJSがHTTPリクエストをキャッシュすると、解析されたJSONオブジェクトまたは文字列レスポンス自体がキャッシュされます
.$http({
url: "/api/data",
method: "GET",
cache: true
})
私のAPIから返されるすべてのデータは、gzipされたJSONです。リクエストの中には、圧縮されていないものがかなり大きく(メガバイト)、ストリングからJSONに変換するのにブラウザ時間がかなり費やされています。私は、AngularJSがHTTPレスポンスをどのようにキャッシュするのか疑問に思いました。文字列レスポンスだけをキャッシュすれば、キャッシュにアクセスするたびにJSONに再度変換する必要があり、コストがかかる可能性があります。
誰でもAngularJSのキャッシュを正確に把握できるので、HTTPキャッシュを使用するのではなく、特定のビッグコールがサービス内のオブジェクトとしてデータをキャッシュする方法を決めることができます。 4つのアイテムを配列として
var p = $http({
url: url,
method: "GET",
cache: true
})
p.then(function(response) {
vm.data = response.data;
vm.info = $cacheFactory.info();
console.log($cacheFactory.get('$http'));
console.log($cacheFactory.get('$http').get(url));
vm.value = $cacheFactory.get('$http').get(url)[1];
vm.typeOf = typeof vm.value;
})
'$ HTTP' キャッシュストアの各項目を::
は、レスポンスオブジェクトをキャッシュする必要があり、あなたは常にそれを文字列として格納detaisl –
を見るために、デバッグ中のJSを実行することができます。 AngularはtoSSONとfromSSONを実行します。これはメモリスパイクを発生させるため、私はそれを使用できません。 – bhantol
@bhantolありがとう、私は見ることができる任意のリンクや参照がありますか? – Chris