Как проверить работу решения?
Видео-инструкция по проверке работы решения:
Как отключить решение на определенных страницах?
Иногда требуется отключить работу модуля на определенных страницах.
Сделать это очень просто - определите константу LOCK_CSSINLINER на страницах, где не нужно подключать стили в inline-виде.
Пример кода:
<?define('LOCK_CSSINLINER', 'Y');?>
Как правильно заполнять файлы в "Ускорение JavaScript"
Достаточно часто поступает вопрос: Как правильно заполнять файлы в подразделе настроек "Ускорение JavaScript"?
Ниже опишу работу и особенности каждого типа ускорения:
1. Отложенные до загрузки скрипты
В данную секцию ускорения можно добавлять js-скрипты не участвующие в непосредственном построении страницы, но которые необходимо загрузить сразу же после первоначальной загрузки.
Например скриптов которые можно откладывать таким методом: Яндекс.Метрика, Google Analytics, FancyBox (они не влияют на отображение, от них не зависят другие скрипты и могут безболезненно инициализироваться после основной загрузки страницы)
Пример скриптов которые нельзя откладывать таким методом: ядро jquery (т.к. если оно не будет загружено вовремя все остальные скрипты завязанные на него не будут функционировать), скрипт слайдера картинок (т.к. при загрузке он сначала будет отображаться в разобранном виде и только после подгрузки отложенных скриптов "соберётся" в слайдер)
2. Отложенные до взаимодействия скрипты
В данную секцию ускорения можно добавлять особо тяжелые js-скрипты, реализующие работу не связанную с основной работой сайта.
Пример скриптов которые можно откладывать таким образом: Виджет bitrix24, Jivosite, Callback-хантеры и т.п.
3. Скрытые от ботов скрипты
В данную секцию можно располагать js-скрипты, css-стили, подключаемые шрифты. Контент данного файла интегрироваться непосредственно в html-страницу.
Контент данного файла будет показываться обычным пользователям и не будет показываться ботам. (Данный способ ускорения часто используется в готовых тиражных сайтах битрикса)
---
Как заполнять файлы?
Любой из трех файлов заполняется html-кодом, т.е. скрипты должны быть обвёрнуты в <script> и т.п.
После указания скрипта в файле отложенного выполнения в предыдущем месте размещения скрипт нужно удалить или закомментировать.
Для разработчиков
В решении реализовано javascript-событие для удобного откладывания скриптов до взаимодействия пользователя со страницей:
BX.addCustomEvent("agciAction", function(){
// код внутри данного события выполнится после первого взаимодействия пользователя со страницей, в примере ниже подключение jivosite отложенно
(function(){
var s = document.createElement('script');
s.type = 'text/javascript';
//s.async = true;
s.src = '//code.jivosite.com/script/widget/vash_identificator';
var ss = document.getElementsByTagName('script')[0];
ss.parentNode.insertBefore(s, ss);
})();
});
Оптимизация изображений
Как установить cwebp
Для установки серверной библиотеки cwebp необходимо обратиться в хостинг, либо к вашему системному администратору (без соответствующих навыков делать установку опасно).
Пример серверных команд команд cwebp:
- Centos, Centos + BitrixVM: sudo yum install libwebp-tools
- Debian, Ubuntu: sudo apt-get install webp
Удаление оригиналов после конвертации в webp
В последнее время часто приходит вопрос - может ли решение после конвертации в webp удалить оригинальные изображения для экономии места на сервере?
Ответ: Нет, решение не удаляет оригиналы, так делать нельзя.
Это может вызвать целую массу проблем, например:
а) Невозможность что то изменить после конвертации. Условно говоря вы сконвертировали изображения с одними настройками, не устроило качество. Если не сохранять оригиналы возможности что то изменить уже нет, т.к. заново конвертировать уже не из чего.
б) До сих пор не все браузеры умеют работать с webp. Решение это знает и если браузер не понимает webp отдаёт ему стандартный формат. Если нет оригиналов - отдавать будет не чего.
в) Невозможность после конвертации отказаться от решения. Если удалить оригиналы, при отключении решение не сможет вернуть то что было до этого, т.к. ориналов нет.
Оригиналы - это безопасность. Всегда храните оригиналы (даже не в рамках этого модуля, а вообще)