Вспоминая чекбоксы на разных страницах - как лучше?
Мне нужно добавить функциональность, аналогичную Gmail, где флажки в списке элементов запоминаются на нескольких страницах результатов, а также при уходе и возвращении к результату. То, что я пытаюсь выяснить, является лучшим способом сделать это. Я использую PHP и, вероятно, JQuery.
Моя первая мысль - добавить onClick для каждого флажка, который запускает обратный вызов AJAX серверу, который сохраняет идентификатор в массиве в сеансе. Каждый раз, когда загружается список элементов, система проверяет, отмечена ли строка, и, если необходимо, устанавливает флажок. Для надежности этот флажок будет снят после проверки, если запрос к серверу не может быть выполнен (проблема с подключением, ошибка сервера и т. Д.), И запрос будет выполнен как можно быстрее.
Звучит все хорошо, за исключением нескольких пунктов:
проверить все: что происходит? Отправляет ли он 30 (элементов страницы по умолчанию) на сервер? Или я должен удалить все onClicks, установить флажки, отправить запрос на сервер со всеми идентификаторами, а затем повторно добавить onClicks? Или же...? Подобная проблема с снятием галочки со всех.скорость: могут возникнуть проблемы, если сотни пользователей все время проверяют и снимают галкуСкорость браузера: я думаю, что лучше всего добавить onClick с JS после загрузки страницы, что, я думаю, может занять секунду или 2, если на одной странице 500 или более элементов. Стало бы большей проблемой с проверкой всего.В прошлом я не нашел надежного способа определить, когда пользователь покидает страницу. Если есть надежный способ, то я мог бы видеть, что это вариант, поэтому он просто записывает на каждой странице разгрузки.
Есть ли другие решения или лучшие методы?
Редактировать: Как упомянутоЭран Гальперин, метод check all должен был бы только проверить каждый из флажков и затем выполнить ajax-вызов со всеми строками. Нет необходимости удалять onClick.
Кроме того, похоже, что метод делегирования событий является хорошей идеей - он намного упростит задачу.