На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Кэширование браузером
    Как и где указывается кэширование различных файлов? Я имею в виду на сайте, а не в настройках браузеров.
    Например, для html-страницы я могу указать:
    ExpandedWrap disabled
      <meta http-equiv="Pragma" content="no-cache">

    А где мне указывать это для JavaScript? Или это наследуется из HTML? Можно ли указать это где-то отдельно (кэшировать или нет)?

    Аналогичный вопрос про изображения.

    А PHP всегда НЕкэшируются?
        :good: а внутри самого документа?

        Добавлено
        Ну не знаю, может, для картинок и загрузки JavaScript-документа есть html-атрибуты специальные или ещё что-то?
          Цитата Jin X @
          есть html-атрибуты специальные
          таких не знаю.
          С какой целью запрещаете кеширование?
            С той, что содержимое часто меняется.
              Вообще каждый браузер сам себе хозяин. Если он захочет что-то схешировать, то вы ему хоть золотыми буквами пишите "no cache" он всё равно может закешировать всё что к нему было отправленно. Поэтому если для вас это так критично, прописываете javascript-код прямо в документе или хотя бы его критические куски. Ну а для изображений используйте base64.

              Ну а по нормальному, просто отправляйте нужные заголовки с сервера.
              Сообщение отредактировано: K313 -
                Цитата Jin X @
                А где мне указывать это для JavaScript?


                Достаточно сменить адрес, например вместо src="/path/to/script.js?v1" на src="/path/to/script.js?v2" ;) Этот способ сброса кеша используют ну воооооообще все. Даже на форуме сырцов так.
                Сообщение отредактировано: Serafim -
                  :)
                    Цитата Serafim @
                    Достаточно сменить адрес, например вместо src="/path/to/script.js?v1" на src="/path/to/script.js?v2" Этот способ сброса кеша используют ну воооооообще все. Даже на форуме сырцов так.
                    ну да, если html-страница не статическая, а генериться PHP, то можно много чего сделать, если головой думать.... :wall:
                      Цитата K313 @
                      ну да, если html-страница не статическая, а генериться PHP, то можно много чего сделать, если головой думать....


                      Ну в качестве извращения можно на клиенте получать с помощью JS :lol:
                      ExpandedWrap disabled
                        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') с нужным адресом + датой

                      Добавлено
                      Но это всё в качестве бреда, забейте =)
                      Сообщение отредактировано: Serafim -
                        Мда уж...
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0335 ]   [ 15 queries used ]   [ Generated: 29.03.24, 10:36 GMT ]