Показать сообщение отдельно
  #6 (permalink)  
Старый 19.01.2015, 14:14
Аспирант
Отправить личное сообщение для desperado Посмотреть профиль Найти все сообщения от desperado
 
Регистрация: 26.08.2014
Сообщений: 51

мне не очень понятно. я хочу закешировать данные, в момент, когда юзер залогинен, что бы не делать ненужные ajax запросы, в вашем же случае при обновлении страницы, естественно нет данных уже в кеше
и запрос отсылается все равно каждый раз.

Сообщение от Shasoft Посмотреть сообщение
Я вот так делаю
App.factory('MyService', 
	[	    '$document','$q','$timeout','$log','$http','$rootScope',
	function($document , $q , $timeout , $log , $http , $rootScope ) 
	{
		// КЕШ загруженных данных
		var m_dataCache = {};
		// Сервис
		var service = {
			// Загрузка данных
			load : function(userID) {
				// Загрузка файлов
				var deferred = $q.defer(); 
				//
				if( angular.isDefined(m_dataCache[userID]) )
				{
					// Вернуть данные из КЕШ-а
					deferred.resolve(m_dataCache[userID]);
				}
				else
				{
					// Загружаем данные
					$http.post("/getUserInfo.php", {id : userID}).then(function (result) {
								// Запомнить в КЕШ
								m_dataCache[userID] = result;
								// Вернуть данные
								deferred.resolve(result);
							}
						}, function (reason) {
							// Вернуть ошибку
							deferred.reject(reason);
						}
					);	
				}
				return deferred.promise;
			}	
		};
		return service;
	}]
);
Ответить с цитированием