Если к одному и тому же URL-адресу GET выполняется несколько запросов, кэш будет вызывать только один запрос. Цитирование документации:
Если есть несколько запросов GET для того же URL, который должен быть в кэше, используя тот же кэш, но кэш еще не заполнен, только один запрос к серверу будет сделано, а остальные запросы будет выполняться с использованием ответа от первого запроса.
Однако, если этот запрос возвращает, если код состояния не увенчался успехом, он не будет кэшироваться (он будет удален из кеша).
Мы можем увидеть это в исходном коде:
/**
* Callback registered to $httpBackend():
* - caches the response if desired
* - resolves the raw $http promise
* - calls $apply
*/
function done(status, response, headersString, statusText) {
if (cache) {
if (isSuccess(status)) {
cache.put(url, [status, response, parseHeaders(headersString), statusText]);
} else {
// remove promise from the cache
cache.remove(url);
}
}
Так короче - Угловая не кэшируются «не удалось» запросы - это: запросы с кодом состояния неуспеха.
Очень полезно, спасибо! – Jaap