сохранение и воссоздание состояния через URL - PullRequest
0 голосов
/ 30 сентября 2018

Представьте себе следующий сценарий:

Пользователь переходит на https://mywebsite.com, ищет что-то и нажимает [submit].Результаты отображаются и URL-адрес теперь https://mywebsite.com/floobah?q=burp.Пользователь нажимает на якорь, который прокручивает страницу вниз до div, чтобы выбрать способ визуализации результата.URL теперь https://mywebsite.com/floobah?q=burp#viz.Пользователь выбирает виджет круговой диаграммы и отображает круговую диаграмму и связанные с ней данные.Теперь URL-адрес https://mywebsite.com/floobah?q=burp&chart=pie&sort=asc#viz.

Затем пользователь отправляет URL-адрес другу.Когда его получатель открывает этот URL, состояние восстанавливается в точности так, как оно было для отправителя.Другими словами, URL-адрес анализируется, и выполняются действия для восстановления состояния… выполняется запрос, страница прокручивается вниз до раздела viz , круговая диаграмма открывается, и связанные данные отображаются отсортированными в видезапрашивается.

Я делаю это прямо сейчас, анализируя URL и повторяя все шаги.Но наверняка уже должна быть библиотека для этого, не так ли?Подводя итог, я хочу, чтобы состояние страницы закодировано в URL-адресе, которое может быть передано и затем воссоздано получателем закладки URL.

Обновление 1: Проблема с моим URL-адресом какотмеченное выше https://mywebsite.com/floobah?q=burp&chart=pie&sort=asc#viz состоит в том, что нет способа провести различие между истинным параметром запроса, таким как q=burb, и чем-то, что было результатом нажатия на элемент с подключенным прослушивателем событий, например, для chart=pie&soft=asc.Мне нужно иметь возможность различать команды для обработки событий, строки запроса и хэша (#viz)

Обновление 2: Итак, у меня есть три набора параметров: queryString, которыйобработанные на сервере события, которые обрабатываются на клиенте, и фрагмент хеша, который указывает привязку на странице, на которую прокручивается браузер.Что если я отмечу события !?Представь себе https://mywebsite.com/floobah?q=burp!makePieChart!sortAscending#viz.QueryString q=burp обрабатывается сервером и возвращается клиенту, который прокручивает до #viz и генерирует события до makePieChart и sortAscending.Мысли?

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