Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.02.2017, 17:44
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

в JSON - это как? Можно пример?
Ответить с цитированием
  #12 (permalink)  
Старый 10.02.2017, 18:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

var _mem = localStorage; 
$(function() {
var itm = $(".wrapper:first").attr('id'),
    btn = $(".btn"),
    idx = !!_mem['items'] && JSON.parse(_mem['items']) || {},
    
    a = $(".block1 a").on("click", function() {
        a.not($(this).addClass("eps")).removeClass("eps");
        $(".eps").parent().css( "display", "block");
        idx[itm] = a.index(this);
        _mem['items'] = JSON.stringify(idx);
    });
    
    if(idx) a.eq(idx[itm]).trigger('click');
});

Последний раз редактировалось laimas, 10.02.2017 в 18:36.
Ответить с цитированием
  #13 (permalink)  
Старый 10.02.2017, 18:45
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

Сообщение от laimas Посмотреть сообщение
var _mem = localStorage; 
$(function() {
var itm = $(".wrapper:first").attr('id'),
    btn = $(".btn"),
    idx = !!_mem['items'] && JSON.parse(_mem['items']) || {},
    
    a = $(".block1 a").on("click", function() {
        a.not($(this).addClass("eps")).removeClass("eps");
        $(".eps").parent().css( "display", "block");
        idx[itm] = a.index(this);
        _mem['items'] = JSON.stringify(idx);
    });
    
    if(idx) a.eq(idx[itm]).trigger('click');
});
Благодарю! То есть это наиболее оптимальный вариант?
И не могли бы Вы подсказать, как удалить запоминание на конкретной странице при клике по <button id="zapominalka">?

Извиняюсь, но я правда ничего не понимаю в JSON, только начинаю вникать в эту тему. Своими силами уже весь день прошёл, можно сказать, впустую.
Ответить с цитированием
  #14 (permalink)  
Старый 10.02.2017, 19:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nezumi.May
То есть это наиболее оптимальный вариант?
Ну а как еще?

Сообщение от Nezumi.May
как удалить запоминание на конкретной странице при клике по <button id="zapominalka">?
$('#zapominalka').click(function() {
        delete idx[id]; 
      //где id это ключ который надо удалить, 
      //если речь о текущей странице
      //значит это будет ранее определенная переменная itm
      //если выбирать из набора страниц, значит надо передавать в это обработчик ключ старнцы
      //или ключи, если выбор из списка  
        _mem['items'] = JSON.stringify(idx);
})

Последний раз редактировалось laimas, 10.02.2017 в 19:25.
Ответить с цитированием
  #15 (permalink)  
Старый 10.02.2017, 20:19
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

Большое спасибо! После долгих мучений наконец-то получилось так, как нужно.
Ответить с цитированием
  #16 (permalink)  
Старый 10.02.2017, 20:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nezumi.May
После долгих мучений наконец-то получилось так, как нужно.
Хотя конечно объем хранимых данных небольшой, но "мода" запихнуть все в хранилище набирает обороты, и кто его знает, вдруг более ушлые заняли своим все хранилище. ) По логике вещей это нужно проверять.

Вообще-то локальное хранилище не единственное у браузера, есть еще и сессионное.
Ответить с цитированием
  #17 (permalink)  
Старый 10.02.2017, 20:40
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

Сообщение от laimas Посмотреть сообщение
Хотя конечно объем хранимых данных небольшой, но "мода" запихнуть все в хранилище набирает обороты, и кто его знает, вдруг более ушлые заняли своим все хранилище. ) По логике вещей это нужно проверять.

Вообще-то локальное хранилище не единственное у браузера, есть еще и сессионное.
Эта примочка "временная" для тех случаев, когда случайно перешёл на другую страницу и потерял данные. Статьи пишут давно, а информации про это дело очень мало. Вроде как 5мб на каждый сайт, каждому браузеру, хранить такие данные как в моём случае (в несколько символов) кажется более чем достаточно, разве нет?

Впрочем, не уверена, что на каждый сайт 5мб, но кто-то такую информацию распространил. А про сессионные совсем ничего не слышала.
Ответить с цитированием
  #18 (permalink)  
Старый 10.02.2017, 21:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nezumi.May
Вроде как 5мб на каждый сайт
Да, правда IE под него выводит вроде бы 10. Ну если более нет идей впихнуть на все 100% в хранилище, тогда да, можно не бояться. )

Сессионное хранилище (sessionStorage) тоже самое за исключением того, что не зависит от домена и работает в приделах окна, то есть открыли окно - сессия, закрыли окно - сессия умерла. Для одной и той же страницы открытой в разных окнах/вкладках будет создаваться своя сессия. Поэтому если временно нужно, то лучше сессионное хранилище. Все методы работы с ним те же самые что и у локального хранилища.
Ответить с цитированием
  #19 (permalink)  
Старый 13.02.2017, 22:05
Аватар для Nezumi.May
Аспирант
Отправить личное сообщение для Nezumi.May Посмотреть профиль Найти все сообщения от Nezumi.May
 
Регистрация: 10.01.2017
Сообщений: 36

laimas, Спасибо за разъяснения. sessionStorage самое то использовать для запоминания в форме комментариев или на форуме. Надо взять на заметку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли использовать значение из localstorage в PHP smart-create Events/DOM/Window 12 07.11.2016 02:54
LocalStorage удаление данных neon_tmn Общие вопросы Javascript 8 21.10.2016 15:22
После добавления localstorage в backbone модель, POST запрос ничего не возвращает aphex Общие вопросы Javascript 0 03.12.2013 15:26
Обход элементов localStorage berserk10 Events/DOM/Window 8 11.08.2013 14:55
Не сохраняется localStorage после перезагрузки браузера Бобр Firefox/Mozilla 1 20.10.2011 20:31