Кэширование http-ответов осуществляется, если в $http.query
передан флаг cachingRequired
со значением true
. При этом обязательна предварительная инициализация параметра кэша cacheTimeToLiveInSeconds
через вызов $http.config
.
В качестве композитного ключа кэша используются следующие параметры http-вызовы:
method
;url
;headers
;query
;body
;form
;dataType
.
Параметр cacheTimeToLiveInSeconds
определяет время, в течение которого повторные запросы cachingRequired: true
с одним и тем же ключом будут возвращать результат из кэша, вместо совершения реальных http-вызовов.
Результаты вызовов, завершившихся с ошибкой (с http-кодом ответа не принадлежащим интервалу [200;300) ), не кэшируются.
Примеры значений
Запросы с одинаковыми по структуре body
. Результат второго вызова будет взят из кэша.
theme: /
init:
$http.config({
cacheTimeToLiveInSeconds: 2
});
state:
q!: *
script:
var object1 = {
key1:'value1',
key2:'value2',
a: { a: 'a', b: 'b' },
c: null,
b: [3, 1, 2]
};
var object2 = {
b: [3,1,2],
key2:'value2',
key1:'value1',
a: {b: 'b', f: function () {}, a: 'a'},
c: null
};
$http.get('http://localhost:9000/get-from-cache', {
cachingRequired: true,
body: object1
});
$http.get('http://localhost:9000/get-from-cache', {
cachingRequired: true,
body: object2
});
});
$temp.m = $http.get('https://www.random.org/strings/?num=1&len=10&digits=on&unique=on&format=plain&rnd=new', {
cachingRequired: true,
});