Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сохранить страничку в кеше браузера (https://javascript.ru/forum/misc/35963-kak-sokhranit-stranichku-v-keshe-brauzera.html)

Михаил1 27.02.2013 17:58

Как сохранить страничку в кеше браузера
 
Подскажите пожалуйста как принудительно сохранить страничку в кеше браузера?

Страничка после загрузки редактируется пользователем. В JS с помощью innerHTML, appendChild, replaysChild... Соответственно на сервер отправляются изменения с помощью xmlhttpreqvest.
Когда пользователь переходит по ссылке и нажимает кнопку назад из кеша загружается не редактированая страница??? Что делать?

Нужно чтобы загружалась редактированая страница.

9xakep 27.02.2013 21:12

Михаил1,
После аякса сделать перезагрузку?

Deff 27.02.2013 21:16

Михаил1,
Подгрузите редактированную страницу в LocalStorage,
В начале объекта проставить адрес страницы и время сохранения/редактирования. При очередной загрузке или возврату по истории, первым делом проверяем наличие в Storage данной страницы и время
Далее либо оставляем текущую, либо перезагружаем из LocalStorage,
Можно явно указать время отдачи сервером в head

Deff 27.02.2013 21:17

Цитата:

Сообщение от 9xakep
После аякса сделать перезагрузку?

Тоже Вариант, но редакция может не пройти на серве

danik.js 28.02.2013 00:30

Так нужно же сделать наоборот - запретить кэширование страницы )
И тогда при нажатии Назад, страница будет взята не из кэша, а запрошена с сервера. Кажется это делается http-заголовком Cache-Control: no-cache или типа того.

Serg_pnz 28.02.2013 09:29

Попробуйте такой набор для антикеша

Header("Last-Modified: ".gmdate("D, d M Y H:i:s", strtotime("-1 day"))." GMT");
	Header("Content-Type: text/html; charset=utf-8");
	if (!empty($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache/2')) {
		Header("Cache-Control: no-cache, pre-check=0, post-check=0");
	} else {
		Header("Cache-Control: private, pre-check=0, post-check=0, max-age=0");
	}
  Header("Expires: 0");
  Header("Pragma: no-cache");

Михаил1 02.03.2013 01:32

спасибо огромное всем!
Deff отличный способ!


Часовой пояс GMT +3, время: 01:43.