Мне нужно активировать перезагрузку страницы через JS, сохраняя положение вертикальной прокрутки.Лучший способ передать одноразовое значение между запросами с использованием JavaScript
Я использую решение, описанное в another SO question:
- Вычислить текущую позицию прокрутки
- Добавить текущую позицию в качестве аргумента строки запроса, а затем перенаправить
- Когда перезагружает страницу, прочитать значение из строки запроса & отрегулируйте позы прокрутки
Однако я только хочу, чтобы восстановить положение прокрутки на этом ПЕРВОЕ перенаправление. Если пользователь прокручивает страницу и затем запускает команду перезагрузить, используя Ctrl-R, я НЕ хочу перепрошивать эту сохраненную позицию.
Есть ли способ передать одноразовое, видимое-на-следующее-запрос значение только с использованием ТОЛЬКО JavaScript? Или удалить значение из document.location.href
без перенаправление?
Должен ли я использовать API истории HTML 5, чтобы «очистить» значение позиции после того, как я его использовал?
Моя первая мысль заключается в использовании куки/сессии, чтобы сохранить эту переменную, а затем удалить его после того, как вы его использовали. – Populus
@Populus, я думал об использовании файлов cookie, но не могу использовать фиксированное имя файла cookie, иначе я мог бы столкнуться с проблемами, если один пользователь имеет несколько вкладок, открытых для разных страниц, каждый из которых пытается использовать эту функцию. Хотя, как и w/localStorage, я предполагаю, что могу использовать полный URL-адрес для создания уникального имени cookie, чтобы избежать столкновений. –
, если вы не обновили всю страницу, а только часть, которая нуждается в обновлении? – Populus