Лучшие практики по запоминанию, где пользователь был на php - PullRequest
0 голосов
/ 20 сентября 2018

Я хотел бы получить несколько советов о том, как лучше всего запомнить, где находился пользователь, в сценарии PHP.

Итак, у нас есть приложение PHP, которое имеет фронт HTML + Jsи на этом фронте мы показываем разбитый на страницы список проектов (через DataTables).Когда пользователь нажимает на проект, приложение загружает новую страницу с описанием проекта.

Чего мы хотим добиться, так это того, чтобы, когда пользователь нажимает кнопку «Назад» в браузере, его отправляли именно туда, где он / она был в списке (точная страница и строка)

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

Я пришел к двум подходам:

  • Cookies (на стороне клиента) : Таким образом, каждый раз, когда пользователь меняет страницу в DataTable, мы сохраняем куки.Всякий раз, когда пользователь возвращается на страницу, мы читаем файл cookie и размещаем пользователя на этой конкретной странице / строке.
  • Сеансы (на стороне сервера) : каждыйКогда пользователь попадает на страницу проекта, мы сохраняем переменную сеанса с идентификатором проекта.Всякий раз, когда пользователь возвращается к списку проектов, мы читаем переменную сеанса и создаем javascript, необходимый для перехода на конкретную страницу / строку, где находится проект.

PROS / CONS о вышеупомянутом?

Любая другая идея / рекомендация?

1 Ответ

0 голосов
/ 20 сентября 2018

Вы должны всегда выдавать уникальные URL для любого места, к которому пользователь может перейти, тогда стандартная навигация браузера будет работать просто отлично.Если вы сохраняете состояние в файлах cookie или сеансах (здесь нет существенной разницы), такое состояние может быть только одно, и пользователь не сможет открывать отдельные окна / вкладки с разными состояниями.Что противоречит принципам работы HTTP.

Если вы ссылаетесь с одной страницы на другую, добавьте в URL параметры для выражения уникальных состояний, например:

Если вы динамически изменяете состояние на странице с помощью Javascript, возможно, добавьте фрагменты для выражения этих изменений состояния:

Вы также можете использовать Javascript History API для изменения URL-адреса другими способами, а не только фрагментом.Важной частью является то, что вы можете прочитать этот URL и снова воспроизвести то же состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...