Пропуск традиционных методов загрузки / ускорения страниц при использовании mod_pagespeed
Я пытаюсь определить, могут ли некоторые "лучшие практики PageSpeed" быть пропущены нашей внешней командой и процессом сборки сейчас, когда мы используем mod_pagespeed (Apache). Примером действий, которые mod_pagespeed выполняет автоматически, которые потенциально могут быть пропущены: 1. Объединить и минимизировать JS и CSS (например, это можно сделать с помощью такого инструмента, как Browserify) 2. Сжать изображения 3. Асинхронная загрузка / внедрение JS и CSS (загрузчики скриптов, атомификация и т. д.) 4. Управление версиями статических ресурсов для очистки кэша (grunt-usemin и т. д.)
Чтобы дать пример ответа, сейчас я удалил статическое управление версиями активов, вместо этого у нас есть файлы global.js и global.css без версий и с коротким сроком действия. Это потому, что mod_pagespeed быстро вернет их с огромным сроком действия в любом случае.
1 ответ
Мы реализовали mod_pagespeed для основного веб-сайта портала большой телекоммуникационной компании. Хотя PageSpeed - очень удобный инструмент оптимизации, он не является волшебной палочкой и имеет некоторые строгие ограничения. Мы покончили с большинством традиционных методов, но обнаружили, что для оптимизации всего необходимо много ручного исправления ресурсов.
Объединить и минимизировать JS и CSS? Да, но обратите внимание на следующие ограничения:
- Вы не можете комбинировать JavaScript между встроенными скриптами и условными комментариями IE.
- Вы не можете объединять файлы JavaScript, в которых используется "строгий" (вам может понадобиться фильтр, чтобы удалить их во время выполнения)
- Дополнительные ограничения на https://developers.google.com/speed/pagespeed/module/filter-css-combine и https://developers.google.com/speed/pagespeed/module/filter-js-combine
- mod_pagespeed должен иметь возможность извлекать и перезаписывать ваши ресурсы (если это не настроено правильно, ничего не произойдет)
- Сжимать изображения? Да, но обратите внимание на следующие ограничения:
- Анимированные картинки не сжимаются
- Существует достаточное количество настроек, которые необходимо применить к вашей конфигурации mod_pagespeed, чтобы сжатие изображений работало оптимально для вашего сайта.
- Асинхронная загрузка / внедрение JS и CSS? Вроде, как бы, что-то вроде:
- Вам все еще понадобится что-то вроде require.js для условной загрузки JavaScript. У нас есть серверное решение для этого
- Вы обнаружите, что большая часть JavaScript не может быть загружена асинхронно, и вам придется пометить его:
<script pagespeed_no_defer="">...</script>
- Нет механизма асинхронного / условного внедрения CSS
- Кроме того, ленивая загрузка изображений работает очень хорошо.
- Управление версиями статических ресурсов для очистки кэша? Да. Это одна из областей, где mod_pagespeed действительно сияет, и нам не нужно было делать никаких ручных исправлений, чтобы это работало. Однако обратите внимание, что mod_pagespeed может работать с этим, только если у вас есть заголовки, которые помечают ресурсы как кеширующие.
Кроме того, если вы думаете об использовании изображения-спрайта, обратите внимание, что это ОЧЕНЬ ограничительно: изображение-спрайт с помощью mod_pagespeed