Я смотрел на приложение, которое я сделал некоторое время назад, и есть определенная страница, где детали загружаются в последний раз. Из-за этого он, кажется, ставит запрос в очередь (перед ним более 6 других), и это приводит к замедлению страницы.
Я подумал, что смогу найти решение для расстановки приоритетов этих запросов, и нашел это:
Как расставить приоритеты запросов в службе $ http?
Итак, я создал свою версию и добавил ее к моим перехватчикам:
// Add our auth interceptor to handle authenticated requests
$httpProvider.interceptors.push('authInterceptor');
$httpProvider.interceptors.push('httpPriorityInterceptor');
Перехватчик выглядит так:
function factory($injector, $q) {
var requestStack = [], // request stack
$http = null; // http service to be lazy loaded
return {
request: request,
responseError: responseError
};
//////////////////////////////////////////////////
function request(config) {
// Lazy load $http service
if (!$http) {
$http = $injector.get('$http');
}
if (!config.hasBeenRequested) {
config.hasBeenRequested = true;
config.priority = config.priority || 3;
console.log(config);
// add a copy of the configuration
// to prevent it from copying the timeout property
requestStack.push(angular.copy(config));
// sort each configuration by priority
requestStack = requestStack.sort(sort);
// cancel request by adding a resolved promise
config.timeout = $q.when();
}
// return config
return config;
}
function responseError(rejection) {
// check if there are requests to be processed
if (requestStack.length > 0) {
requestStack.reduceRight(function(promise, config) {
return promise.finally(function() {
return $http(config);
});
}, $q.when());
requestStack.length = 0;
}
// return rejected request
return $q.reject(rejection);
}
//////////////////////////////////////////////////
function sort(config1, config2) {
return config1.priority < config2.priority;
}
}
Проблема в том, что, похоже, он также перехватывает запросы шаблонов. У меня нет проблем с этим, но они не решаются. Вместо этого я получаю много ошибок:
Ошибка: [$ templateRequest: tpload] Не удалось загрузить шаблон: app / accounts / accounts.html (статус HTTP: -1)
Кто-нибудь сталкивался с этим раньше? Что я могу сделать, чтобы это исправить?