Лучший способ сохранить статус динамического веб -интерфейса

StackOverflow https://stackoverflow.com/questions/3992242

  •  10-10-2019
  •  | 
  •  

Вопрос

В основном на моем сайте у меня есть боковая панель со стопкой коробок; Каждая коробка может быть свернута или расширена пользователем. Мне нужно сохранить статус каждого поля для в настоящее время регистрированного пользователя. Я не хочу использовать файлы cookie, потому что, если пользователь меняет браузер или компьютер, все поля пойдут в статус по умолчанию.

Должен ли я сохранить эту информацию в базе данных, создавая запрос каждый раз, когда пользователь обрушивает/расширяет коробку? Как бы вы справились с этим? Спасибо.

Редактировать: Что, если пользователь нажимает на кнопку переключения неоднократно, как десять раз за две секунды, просто потому, что он наслаждается анимацией коробок? Он сделает десять запросов за две секунды. Так что, возможно, вопрос должен быть: когда Должен ли я сохранить эти данные?

Это было полезно?

Решение

  1. Вызовите функцию (на стороне клиента) «Измененная» каждый раз, когда меняется ящик.

  2. Держите два пункта (клиентская сторона) состояния: время, когда было отправлено последнее обновление на сервере, и был ли установлен таймер.

  3. Напишите функцию (обновление на стороне клиента), которая отправляет обновление и обновляет состояние, чтобы отметить, что последнее обновление было только сейчас.

  4. Когда измененная функция вызвана: если таймер установлен, затем немедленно вернитесь; Если обновление никогда не было отправлено или последнее обновление было отправлено более десяти секунд назад, то вызовите функцию обновления и возврат. В противном случае установите таймер для отправки обновления через десять секунд.

  5. Обратный вызов таймера должен просто очистить флаг таймера и вызвать функцию обновления.

  6. Также на разгрузка Проверьте, если был установлен таймер и если он был, тогда очистите таймер и вызовите функцию обратного вызова таймера.

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

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

Другие советы

Если вам нужно сохранить эти параметры с нескольких компьютеров, вам понадобится какая -то форма хранилища на стороне сервера.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top