Принудительно кешировать страницу содержимого Ajax - PullRequest
2 голосов
/ 01 июня 2010

У меня есть страница поиска, где результаты загружаются через ajax. Затем он перечисляет продукты на странице, и вы можете нажать, чтобы просмотреть каждый продукт. Я хотел бы изменить эту страницу, чтобы после просмотра продукта, если вы нажали «назад» в браузере, он загружал кэш, а не заставлял пользователя искать снова.

Примечание: я не ищу ajax-кеш, а просто заголовок кэша браузера

Как мне этого добиться?

У меня сейчас есть ....

header('Cache-Control: private, max-age:3600');
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600));

и кеш не загружается

Ответы [ 3 ]

1 голос
/ 01 июня 2010

Вместо того, чтобы захватывать кнопку «назад» в браузере или полагаться на Javascript (никогда не бывает хорошей идеей), я бы предложил использовать ваш сеанс для сохранения результатов. Что я обычно делаю для результатов поиска, это сохраняю отформатированные результаты в сеансе для быстрой перезагрузки (для ситуаций, подобных описанной вами, возвращаясь после просмотра страницы сведений), и заменяю их в любое время, когда они выполняют новый поиск, чтобы у вас огромное количество данных сеанса накапливается.

Когда вы загружаете страницу, проверьте наличие любых данных POST (или GET, как бы вы это ни делали), а затем проверьте сеанс, чтобы узнать, был ли недавно выполнен поиск с использованием этих данных. Это ускорит процесс и уберет часть трафика из вашей базы данных.

1 голос
/ 01 июня 2010

Хорошая статья о проблеме и ее решении: http://asciicasts.com/episodes/175-ajax-history-and-bookmarks

0 голосов
/ 01 июня 2010

Возможно, вы захотите использовать плагин истории jQuery. Смотрите демо

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