PageSpeed

Купить PageSpeed в магазине дополнений →
10 сентября 2020, 07:00

Описание:

Это дополнение предназначено для облегчения интеграции оптимизаций PageSpeed Insights для MODX Revolution. Оно может:

  • Работать в автоматическом режиме, если достаточно стандартной конфигурации.
  • Генерировать критические правила стилей.
  • Получать ресурсы страницы через API cdnjs.com и скачивать шрифты с Google Fonts.
  • Объединять и минифицировать стили, скрипты и JSON. Минифицировать HTML контент.
  • Скачивать и кэшировать медиа файлы.
  • Вычислять хеши SRI для файлов и добавлять аттрибуты defer или async к тегу script.
  • Конвертировать gif, jpg и png изображения в формат webp, если браузер его поддерживает.
  • Применять нативную ленивую загрузку для элементов img и iframe.
  • Одновременно работать с несколькими конфигурациями, эффективно используя кэш.
  • Выводить специализированные теги MODX в консоль браузера для членов группы Administrator.

Режимы:

Режим Описание
Автоматический Когда опция subresources не задана, плагин ищет ресурсы в HTML и обрабатывает их.
Ручной Обрабатывает только ресурсы из опции subresources.

Синтаксис:

[[!PageSpeed?
    &async=`false`
    &convert=`static`
    &critical=`true`
    &crossorigin=`anonymous`
    &defer=`true`
    &integrity=`sha256`
    &lifetime=`604800`
    &loading=`lazy`
    &minify=`html link script`
    &quality=`80`
    &subresources=`{
        "link" : [
            { "name" : "", "version" : "", "filename" : "", "media" : "" },
            { "url" : "", "media" : "" }
        ],
        "script" : [
            { "name" : "", "version" : "", "filename" : "" },
            { "url" : "" }
        ]
    }`
    &tplBeacon=`PageSpeed.tplBeacon`
    &tplConsole=`PageSpeed.tplConsole`
    &tplLink=`PageSpeed.tplLink`
    &tplScript=`PageSpeed.tplScript`
]]

Параметри:

Параметр Описание
async Не обязательный. По-умолчанию false. Значения аттрибута async для всех ресурсов script. Интерпретируется как boolean.
convert Не обязательный. По-умолчанию static. Отвечает за конвертирование gif, jpg и png изображений в формат webp с указанным качеством. Не чувствителен к регистру. Возможные значения: disable, dynamic, static.
  • disable - изображения не конвертируются.
  • dynamic - изображения не кешируются после конвертации. Потребляет больше ресурсов CPU.
  • static - изображения кешируются после конвертации. Потребляет больше свободного места.
critical Не обязательный. По-умолчанию true. Отвечает за генератор критических стилей. Интерпретируется как boolean. Может быть указан отдельно для ресурса script.
crossorigin Не обязательный. По-умолчанию anonymous. Значения аттрибута crossorigin для всех ресурсов. Не чувствителен к регистру. Возможные значения: anonymous, use-credentials. Может быть указан отдельно для ресурса.
defer Не обязательный. По-умолчанию true. Значения аттрибута defer для всех ресурсов script. Интерпретируется как boolean. Может быть указан отдельно для ресурса script.
integrity Не обязательный. По-умолчанию sha256. Алгоритм, который будет использоваться для вычисления хеша контроля целостности ресурсов. Не чувствителен к регистру. Возможные значения: sha256, sha384, sha512, или любая их комбинация. Может быть указан отдельно для ресурса.
lifetime Не обязательный. По-умолчанию 604800. Срок действия кэша ресурсов.
loading Не обязательный. По-умолчанию lazy. Значения аттрибута loading для тегов img и iframe. Не чувствителен к регистру. Возможные значения: auto, eager, lazy.
minify Не обязательный. По-умолчанию html link script. Определяет типы контента, которые будут минифицированы. Не чувствителен к регистру. Возможные значения: css, html, js, json, link, script, или любая их комбинация.
  • css - inline CSS.
  • html - HTML контент.
  • js - inline JS.
  • json - inline JSON и JSON+LD микроданные.
  • link - CSS файлы.
  • script - JS файлы.
quality Не обязательный. По-умолчанию 80. Качество отконвертированных webp изображений. Возможные значения: целые числа от 0 до 100.
subresources Не обязательный. По-умолчанию создаётся автоматически. JSON-объект, который содержит информацию про ресурсы, их версии и файлы. Либо URL либо свойство name для cdnjs.com API является обязательным, в то время как остальные свойства заменяются соответствующими по-умолчанию из API, если не указаны.
tplBeacon Не обязательный. По-умолчанию PageSpeed.tplBeacon. Шаблон генератора критических стилей.
tplConsole Не обязательный. По-умолчанию PageSpeed.tplConsole. Шаблон информации в консоли браузера.
tplLink Не обязательный. По-умолчанию PageSpeed.tplLink. Шаблон тегов link.
tplScript Не обязательный. По-умолчанию PageSpeed.tplScript. Шаблон тегов script.

Примеры:

Последняя версия jQuery с ежедневным обновлением с jsdelivr.net:

[[!PageSpeed?
    &defer=`false`
    &lifetime=`86400`
    &subresources=`{
        "script" : [
            { "url" : "https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js" }
        ]
    }`
]]

Последняя версия Bootstrap с defer для всех ресурсов script и еженедельным обновлением с cdnjs.com:

[[!PageSpeed?
    &subresources=`{
        "link" : [
            { "name" : "twitter-bootstrap", "filename" : "css/bootstrap.min.css" }
        ],
        "script" : [
            { "name" : "jquery" },
            { "name" : "popper.js", "filename" : "umd/popper.min.js" },
            { "name" : "twitter-bootstrap" }
        ]
    }`
]]

Примечания:

Одновременному выполнению препятствует дополнение System V Semaphores. Кэш можно очистить вручную в меню Управление / Очистить кэш / PageSpeed. Автоматический режим не может и не будет самостоятельно работать на любой конфигурации MODX. Это дополнение использует библиотеку Minify.