Задать вопрос
@a1en_yeah

Где хранить подгружаемые данные в клиенте на Angular JS?

На главной странице веб приложения подгружается список ну допустим серверов, через RESTful API, и в каждом сервере есть кластеры, базы данных, всякая статистика и т.п.
Стоит модуль breadcrumbs , и вот когда пользователь переходит с внутренних страниц допустим в корень сайта, где подгружается лист серверов, иногда, никаких серверов не появляется. Причём происходит это совершенно хаотически.
Я пока не могу отследить закономерность и причину. Но подозреваю что следовало бы "по нормальному" хранить где то уже загруженные данные.
Вижу возможность хранить в rootScope или в localstorage, но мне это не кажется хорошей практикой.
Возможно вообще лучше всего нигде не хранить, и загружать каждый раз ?
Никаких подходящих статей на эту тему не нашёл, может что подскажете ? :)
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ну как бы если у вас SPA - вы делаете сервис и храните в нём ваши данные. Всё будет жить на протяжении всего сеанса. Т.е. 1 раз загрузили и дальше пользуемся пока не релоаднули страницу или ещё что. Грузить можно тогда, когда первый раз требуется.
Ответ написан
Комментировать
@a1en_yeah Автор вопроса
Не знаю почему тупил и не смотрел код раньше, оказывается проблема в функции getClusters()
Я вывожу через консоль (на сервере и клиенте) сообщения на каждом этапе, и оказывается что иногда!!! запрос просто тупо не отправляется =) Сервер не получает запроса напросто =)
Интересная хрень, буду заниматься этим феноменом, просто из любопытства, если не найду, буду хранить данные и не парить мозги =)
А у вас есть идеи ? Почему эта функция может тупить порой ?

$scope.getClusters = function() {
				console.log('getClusters() running');
				$http.get('/home/clusters')
				.then(function(response) {
					console.log('Response was recieved.')
					$scope.clusters= response.data;
					$scope.displayedClusters= [].concat($scope.clusters);
					/*console.log($scope);*/
				})
				.catch(function(error) {
					console.error('home/clusters get request failed');
					console.error(error);
				});	
			};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы