Задать вопрос
@Oslar

Что прописать нужно чтобы файл html автоматически чистилcя в кэше браузера и показывал последние изменения?

Выходит так, что я не буду говорить всем клиентам почистите кэш, потому что мы сделали кое-какие изменение в ценах на сайте. Мне нужно чтобы как только я что-то изменил в html на сайте, то клиент как только обновит страницу, у него больше не показывалась старая информация, а показывалась новая.
  • Вопрос задан
  • 302 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 1
PavelMonro
@PavelMonro
Гуглить мета заголовки cache-control, expires, pragma
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
клиент как только обновит страницу, у него больше не показывалась старая информация, а показывалась новая.

Неправильный ответ - прописать заголовки кеширования на короткое время, магия, чистка кэша и вот это все

Правильный ответ - не использовать файлы с одинаковыми именами для динамически меняющегося контента.
Поясню: файлы js, css, изображения и прочие элементы дизайна и функционала должны кешироваться, они не являются динамической информацией и не должны часто меняться. Отключать кеширование для них - глупо и чаще всего бесполезно(вы же не храните прайс в js файле надеюсь?). Информация же динамическая (в вашем случае прайс) либо в виде текста лежит(что вообще не кешируется по умолчанию), либо лежит у вас в виде файла типа price.xls. И вот во втором случае уже будут проблемы. И тут есть 2 нормальных решения: первое - делать уникальные имена для прайсов(например добавлять дату изменения, что логично и удобно как вам так и клиенту), либо после ссылки на файл добавлять уникальный гет параметр, в итоге ссылка файла будет выглядеть как price.xls?date=220519. Тоже приемлемый вариант, но уникальное имя лучше/удобнее.
Ответ написан
dollar
@dollar
Делай добро и бросай его в воду.
Вам нужно не смотреть в сторону кеша браузера, а использовать подконтрольный разработчику кеш - например, localStorage. Вашему сайту бесплатно доступно 5Мб на стороне пользователя. Теоретически можно даже превысить этот лимит, побеспокоив пользователя.

Соответственно, сайт выдаёт сводную инфу и крохотный скрипт, который проверяет, устарели данные или нет. Если устарели, то очищает сохраненные данные и загружает новые.

Можно даже по-умному это всё делать. Например, так:
1) Мини скрипт проверяет актуальность базы (когда она была загружена).
2) Дальше шлет мини запрос (ajax) на сервер с указанием этой даты.
3) Сервер проверяет, что изменилось с той даты.
4) Сервер высылает новые данные только с изменениям. Например: товар 555 удалить, товар 777 добавить, товар 999 изменить цену на 14.99
5) Клиент принимает небольшую порцию данных и актуализирует локальную базу в localStorage
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы