Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.131.58] |
|
Сообщ.
#1
,
|
|
|
Как и где указывается кэширование различных файлов? Я имею в виду на сайте, а не в настройках браузеров.
Например, для html-страницы я могу указать: <meta http-equiv="Pragma" content="no-cache"> А где мне указывать это для JavaScript? Или это наследуется из HTML? Можно ли указать это где-то отдельно (кэшировать или нет)? Аналогичный вопрос про изображения. А PHP всегда НЕкэшируются? |
Сообщ.
#3
,
|
|
|
а внутри самого документа?
Добавлено Ну не знаю, может, для картинок и загрузки JavaScript-документа есть html-атрибуты специальные или ещё что-то? |
Сообщ.
#4
,
|
|
|
Цитата Jin X @ таких не знаю.есть html-атрибуты специальные С какой целью запрещаете кеширование? |
Сообщ.
#5
,
|
|
|
С той, что содержимое часто меняется.
|
Сообщ.
#6
,
|
|
|
Вообще каждый браузер сам себе хозяин. Если он захочет что-то схешировать, то вы ему хоть золотыми буквами пишите "no cache" он всё равно может закешировать всё что к нему было отправленно. Поэтому если для вас это так критично, прописываете javascript-код прямо в документе или хотя бы его критические куски. Ну а для изображений используйте base64.
Ну а по нормальному, просто отправляйте нужные заголовки с сервера. |
Сообщ.
#7
,
|
|
|
Цитата Jin X @ А где мне указывать это для JavaScript? Достаточно сменить адрес, например вместо src="/path/to/script.js?v1" на src="/path/to/script.js?v2" Этот способ сброса кеша используют ну воооооообще все. Даже на форуме сырцов так. |
Сообщ.
#8
,
|
|
|
|
Сообщ.
#9
,
|
|
|
Цитата Serafim @ ну да, если html-страница не статическая, а генериться PHP, то можно много чего сделать, если головой думать.... Достаточно сменить адрес, например вместо src="/path/to/script.js?v1" на src="/path/to/script.js?v2" Этот способ сброса кеша используют ну воооооообще все. Даже на форуме сырцов так. |
Сообщ.
#10
,
|
|
|
Цитата K313 @ ну да, если html-страница не статическая, а генериться PHP, то можно много чего сделать, если головой думать.... Ну в качестве извращения можно на клиенте получать с помощью JS var script = '/path/to.js'; var response = await fetch(script , {method: 'HEAD'}); var date = response.headers.get('Date'); var sources = localStorage.getItem(`script:${date}`); if (!sources) { sources = await (await fetch(script)).body.getReader().read(); localStorage.setItem(`script:${date}`, sources); } eval(sources); Добавлено Ну или после head запроса на получение даты генерации - просто впиливать document.createElement('script') с нужным адресом + датой Добавлено Но это всё в качестве бреда, забейте =) |
Сообщ.
#11
,
|
|
|
Мда уж...
|