Функция cache_javascript_headers()
в WordPress используется для установки HTTP-заголовков, оптимизирующих кэширование динамически созданных JavaScript файлов. Она задает параметры, которые позволяют кэшировать JavaScript файлы на срок до 10 дней, тем самым сокращая нагрузку на сервер и ускоряя время загрузки страницы.
cache_javascript_headers()
cache_javascript_headers()
автоматически устанавливает несколько заголовков, включая тип контента (Content-Type
) и параметры кэширования, такие как время истечения срока действия (expires) и параметры контроля кэширования (cache-control).
Возвращаемое значение
Функция не возвращает значения (возвращает null
), так как ее основная цель — отправить HTTP-заголовки кэширования.
Заголовки, устанавливаемые функцией
При вызове cache_javascript_headers()
устанавливаются следующие заголовки:
Content-Type: text/javascript; charset=UTF-8
— определяет тип содержимого как JavaScript с указанием кодировки UTF-8.Vary: Accept-Encoding
— указывает, что ответы могут варьироваться в зависимости от заголовкаAccept-Encoding
.Cache-Control: max-age=864000, must-revalidate
— задает время кэширования в 10 дней (864000 секунд) и указывает браузеру обновить кэш по истечении этого срока.Expires: <дата>
— устанавливает конкретную дату истечения срока действия, рассчитываемую от момента вызова.
Пример 1: Создание динамического JavaScript файла
В этом примере создается PHP-скрипт, генерирующий JavaScript-файл с использованием функции cache_javascript_headers()
для оптимизации кэширования. Такой подход может быть полезен, если JavaScript должен динамически обновляться или включать пользовательские данные.
Создаем файл dynamic-script.php
в папке темы и добавляем следующий код:
<?php
// Подключаем функцию для установки заголовков.
cache_javascript_headers();
// JavaScript код, динамически созданный PHP
echo "console.log('This JavaScript is generated dynamically');";
Теперь, при обращении к example.com/wp-content/themes/your-theme/dynamic-script.php
, браузер получит JavaScript файл с заданными заголовками и сроком кэширования.
Пример 2: Настройка кэширования для JavaScript с пользовательскими параметрами
Этот пример демонстрирует, как функция cache_javascript_headers()
может использоваться совместно с другими заголовками для еще более строгого контроля кэширования, включая принудительное обновление кэша при изменении содержимого.
<?php
cache_javascript_headers();
// Добавляем метку версии для отслеживания изменений
$version = '1.0.1';
echo "console.log('JavaScript version {$version} loaded');";
Пример 3: Генерация JavaScript с настройками кэширования для тестирования
Чтобы протестировать кэширование и быстро видеть обновления кода, можно временно установить меньший срок действия заголовков. Например, уменьшим max-age
до одного дня.
<?php
// Устанавливаем кэш заголовки с меньшим сроком действия.
header("Content-Type: text/javascript; charset=UTF-8");
header("Vary: Accept-Encoding");
header("Cache-Control: max-age=86400, must-revalidate"); // 1 день
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 86400) . " GMT"); // 1 день
echo "console.log('Short-term caching for testing purposes');";
Заключение
Функция cache_javascript_headers()
позволяет легко настраивать заголовки для динамически созданного JavaScript контента, оптимизируя кэширование и снижая нагрузку на сервер.