Мне нужно добавить функциональность, похожую на Gmail, где флажки в списке элементов запоминаются на нескольких страницах результатов и когда они уходят и возвращаются к результату. То, что я пытаюсь понять, – лучший способ сделать это. Я использую PHP и, вероятно, jQuery.
Моя первая мысль состоит в том, чтобы добавить onClick к каждому флажку, который запускает вызов AJAX на сервер, который хранит идентификатор в массиве в сеансе. Каждый раз, когда список элементов загружается, система проверяет, проверена ли строка, и установите флажок, если необходимо. Для надежности флажок будет снят без проверки, если запрос на сервер не может быть завершен (проблема подключения, ошибка сервера и т. Д.), И запрос будет сделан как можно быстрее.
Это звучит хорошо, за исключением нескольких предметов:
Раньше я не нашел надежного способа обнаружить, когда пользователь покидает страницу. Если есть надежный способ, я мог бы видеть, что это вариант, поэтому он просто записывает на каждую страницу разгрузку.
Есть ли другие решения или лучшие методы?
Изменить: Как упоминал Эран Гальперин , проверка всего метода должна была бы только проверить каждый флажок, а затем сделать ajax-вызов со всеми строками. Не нужно удалять onClick.
Кроме того, похоже, что метод делегирования событий является хорошей идеей – это упростит ситуацию.
Для пользователя, покидающего страницу, вы можете использовать событие onbeforeonload , однако, если браузер выходит из строя или иным образом выходит из строя, он не будет пойман. Используйте его в зависимости от того, насколько важно, чтобы он мог записывать пользовательские изменения.