Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2019, 07:59
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Как правильно сравнивать временные метки?
Здравствуйте. Подскажите, пожалуйста как правильно реализовать следующую логику: при первом посещении сайта, я записываю получаю данные сервера (json), записываю эти данные в localstorage. Далее при перезагрузке страницы, я получаю эти данные с localstorage, например:
[
  {id: 5, name: 'Mikhail', value: '18.35'},
  {id: 3, name: 'Yuri', value: '13.25'},
  {id: 1, name: 'Alexey', value: '07.25'},
  {id: 2, name: 'Ruslan', value: '09.55'},
  {id: 4, name: 'Ruslan', value: '13.55'}
]

И мне нужно проверить, делал ли я запрос на сервер последний раз, например 30 минут назад, и если да, то сделать его снова (true), нет: false.
Т.е. как мне правильно записать время запроса и при перезагрузке страницы сравнить текщее время с предыдущим временем запроса?
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2019, 14:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от gsdev99
как мне правильно записать время запроса
Получи дату и время в виде стандартной строки
Сообщение от gsdev99
при перезагрузке страницы сравнить текщее время с предыдущим временем запроса?
Узнай текущую дату и время время...
Прочитай записанную строку с датой и временем... Если она есть - преобразуй ее в дату и время...
Просто сравни данные одного типа...
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2019, 04:02
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

gsdev99,
function initData(key, url, onComplete, time) {
    var value = localStorage[key];
    if (value) {
        value = JSON.parse(value);
        if (new Date - value.time > time) {
            update();
        } else {
            onComplete(value.data);
        }
    } else {
        update();
    }
    function update() {
        $.getJSON(url, function (data) {
            value = { time: +new Date, data: data };
            localStorage[key] = JSON.stringify(value);
        }).always(function () {
            onComplete(value && value.data);
        });
    }
}

initData('myData', 'example.json', function (data) {
    if (!data) return;
    // data.id
    // data.name
    // data.value
}, 30 * 60 * 1000);

Последний раз редактировалось Rise, 08.02.2019 в 04:06.
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2019, 12:20
Аспирант
Отправить личное сообщение для gsdev99 Посмотреть профиль Найти все сообщения от gsdev99
 
Регистрация: 03.02.2019
Сообщений: 72

Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно реализовать следующую логику на событии scroll? s24344 Элементы интерфейса 2 03.02.2019 12:00
Как правильно организовать подключение скриптов? s24344 Общие вопросы Javascript 0 31.12.2018 11:53
Пасоны, как правильно парсить параметры? megaupload Оффтопик 15 05.05.2013 14:44
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14