Как закешировать страницу, что б при возвращении "назад" отображались не в изначальном виде, а до перехода?

Рейтинг: 0Ответов: 2Опубликовано: 02.04.2015

Как закешировать страницу, чтоб при возвращении "назад" отображались не в изначальном виде, а до перехода? Смысл в том, что пользователь выбирает данные по фильтру и потом меняется урл, но при если он вернётся "Назад", что б отображались не первоначальные данные, а выбранные до перехода.

Ответы

▲ 2

Вам нужно каким-то образом сохранить состояние страницы. При изменении состояния страницы вы можете менять #hash в URL, например http://example.com/page#mode=search&search=foobar. При возвращении назад браузер восстановит в том числе #hash. Тогда вы сможете по параметрам из #hash привести страницу в состояние, в котором она должна быть.

▲ 2

Можно использовать как #hash, так и localStorage (или куки) для хранения состояния страницы, либо устанавливать Cache-Control (no-store, must-revalidate), если состояние страницы (выбранный фильтр) сохранился на сервере. Более подробное описание здесь:

Как перехватить кнопку "назад" браузера?