![](/img/trans.png)
[英]AngularJS: Why is $http response.data an object, when php returns a JSON string?
[英]When AngularJS caches HTTP requests does it cache the parsed JSON object or the string response itself
我使用內置的 AngularJS 緩存 IE 緩存我的 HTTP 請求
.$http({
url: "/api/data",
method: "GET",
cache: true
})
從我的 API 返回的所有數據都是 gzipped JSON。 一些請求是相當大的未壓縮(想想兆字節),並且在從字符串轉換為 JSON 上花費了大量的瀏覽器時間。 然后我想知道 AngularJS 如何緩存 HTTP 響應。 如果它只緩存字符串響應,那么每次我訪問緩存時,它都必須再次轉換為 JSON,這可能會很昂貴。
任何人都可以闡明 AngularJS 究竟緩存了什么,以便我可以決定如何最好地進行,即對於某些大調用,將數據緩存為服務中的對象,而不是使用 HTTP 緩存。
你可以自己查看緩存:
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' 緩存將每個項目存儲為一個包含 4 個項目的數組:
JSON 數據在被任何響應攔截器解析和轉換之前存儲為原始字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.