Задать вопрос
@kapko
учусь)

Максимальная оптимизация приложения на angularjs + localStorage, ваше мнение?

Добрый день всем.
Такой вопрос я могу хранить список имен в localStorage и в случаи необходимости обновлять этот массив имен:

localStorage.setItem('users', JSON.stringify(response));

Потому как у меня в проекте списки имен вызывается не однократно через HTTP requests, в данном случаи я просто вызваляю все данные из localStorage примерно:

$scope.names = localStorage.getItem('contact');

Я так увлекся этим что все данные начал просто пихать в localStorage, У кого какое мнение по поводу данного примера?
1) Cтоит ли так делать?
2) Какие отрицательные последствия могу быть из за этого?
3) Чем можно заменить localStorage? (pouchDВ уже использовал, это не то).
4) Что можете посоветовать?
  • Вопрос задан
  • 539 просмотров
Подписаться 2 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 3
fnnzzz
@fnnzzz
front-end dev
если они у вас не очень часто теряют актуальность, то можно использовать приём "оптимистических обновлений", тобишь сразу вывести данные из локал-стораджа, а уже потом переспросить их у АПИ, отрендерить и записать новый список в localStorage, у юзеров будет хороший икспириенц.

Отрицательным фактором в таком случае может быть "мигание" данных, если они у вас частенько меняют актуальность.
Из аналогов localStorage можно заюзать indexDB, у него в принципе неплохая поддержка браузерами и он более развесистый.
Ответ написан
Комментировать
ozknemoy
@ozknemoy
яваскриптист
у ангулара есть свой cacheFactory. внутри фабрики:
var httpFactory = {},
        cache = $cacheFactory.get('$http');

httpFactory.getInterest = function () {
        return getWithCache('ref/user-interest')
    };
function getWithCache (url) {
        var mycache = httpFactory.getCache(baseUrl+url);
        if(mycache) {
            const _mycache =  angular.copy(mycache);
            var deferred = $q.defer();
            deferred.resolve({data:JSON.parse(_mycache[1])});
            return deferred.promise
        }
        else return $http.get(baseUrl+url, {cache: true})
    }

дергаю из контроллера getInterest . первый запрос с сервера, второй и последующие из кеша. при перезагрузке приложения разумеется кеш нулевой
Ответ написан
saintbyte
@saintbyte
Django developer
Специально для вас есть такая штука: https://pouchdb.com/
Ответ написан
Ваш ответ на вопрос

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

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