PageSpeed

Купить PageSpeed в магазине дополнений →
26 августа 2019, 07:00
  • Синтаксис
  • Примечания
  • Описание:

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

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

    Режимы:

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

    Синтаксис:

    [[!PageSpeed?
        &assets=`true`
        &async=`false`
        &crossorigin=`anonymous`
        &defer=`true`
        &integrity=`sha256 sha384 sha512`
        &lifetime=`604800`
        &minify=`css html js json link script`
        &preconnect=`true`
        &quality=`-1`
        &subresources=`{
            "link" : [
                { "name" : "", "version" : "", "filename" : "", "media" : "" },
                { "url" : "", "media" : "" }
            ],
            "script" : [
                { "name" : "", "version" : "", "filename" : "", "media" : "" },
                { "url" : "", "media" : "" }
            ]
        }`
        &tplConsole=`PageSpeed.tplConsole`
        &tplLinkPreconnect=`PageSpeed.tplLinkPreconnect`
        &tplLinkStylesheet=`PageSpeed.tplLinkStylesheet`
        &tplScript=`PageSpeed.tplScript`
    ]]

    Параметри:

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

    Примеры:

    Автоматический режим без локального кэширования медиа-файлов:

    [[!PageSpeed?
        &assets=`false`
    ]]

    Последняя версия 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. Кэш можно очистить вручную в меню Управление / Очистить кэш / cdnjs.com. При использовании автоматической конвертации gif, jpg и png изображений в формат webp необходимо дополнительного иметь 80% места под кеш. Автоматический режим не может и не будет самостоятельно работать на любой конфигурации MODX. Это дополнение использует библиотеку Minify.