ym88659208ym87991671
Кэширование http-вызовов для смартапов | Документация SmartMarket
Skip to main content

Кэширование http-вызовов

Кэширование 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,
});
Обновлено 31 мая 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней