Как продолжить запуск setInterval в веб-приложении с Jquery - PullRequest
0 голосов
/ 19 июня 2020

Я разрабатываю веб-приложение, которое позволяет пользователям автоматизировать создание таблиц. Они могут вручную добавлять строки в таблицы и редактировать их, а также могут иметь возможность создать автоматизацию, которая будет автоматически добавлять строки в свои таблицы на основе выбранных параметров (каждые x минут и т. Д. c).

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

Проблема, конечно, в том, что когда страница обновляется, интервал уничтожается, и поэтому он становится не очень полезным.

Что я могу сделать, чтобы «сохранить» функцию интервала в памяти, чтобы она сохранялась, пока пользователь вручную не удалит ее?

1 Ответ

0 голосов
/ 19 июня 2020

Будет решение, используя localStorage или sessionStorage, документацию вы можете найти здесь Window.localStoage или Windows .sessionStorage .

Не забывайте, что у вас есть ограничения , подробнее об ограничениях localStorage вы найдете, выполнив поиск по нему или найдя такие сообщения в stackoverflow: Каков максимальный размер значений localStorage?

Также, я думаю, вы получите низкую производительность, используя JSON.stringify(). Но если вы хотите хранить меньше и крошечные данные, вы можете попробовать что-то вроде этого пример на jsfiddle

Основная идея c скрипки состоит в следующих строках:

// data is an array and could keep objects ...
var data = [];

// save data array into localStorage
localStorage.setItem('interval-data', JSON.stringify(data));

// remove the data from the localStorage
localStorage.removeItem('interval-data');

// read the localStorage and convert the data back to an array
var storageData = JSON.parse(localStorage.getItem('interval-data'));

Наконец, теперь вы должны подумать, лучше ли хранить ваши данные в базе данных.

...