Стоит помнить, что в head страницы bitrix подключает свои служебные файлы, как минимум эти:
kernel_main.js
kernel_main.css
Что интересно - не авторизованным, простым посетителям эти файлы даром не нужны, но на них уходят 2 GET запроса и примерно 273 кб трафика.
Внимание! Файл kernel_main.css в режиме сжатия и объединения CSS сохраняет там содержимое style.css кастомных шаблонов компонентов, так что будьте внимательны! [spoiler] Итак, в init.php пишем следующий код:
Теперь сайт грузится быстрее =) я проверяю сайты на скорость здесь и здесь.
P.S. Есть мнение, что обработка страницы регулярным выражением ресурсоемко. Но практика показывает, что время генерации страницы, если и увеличивается, то не сильно, а вот экономия ~300 кб трафика на каждом хите - это существенно. Простая математика: ресурс имеет 3000 уников в сутки умножаем на 300кб - получаем 900мб лишнего трафика в сутки, или 27 гб в месяц...
UPD1: Выложил вторую версию кода. С первой в админку не зайти UPD2: Не забываем грамотно подключать скрипты в init.php. Еще этот код есть где-то в документации, но пока не нашел. UPD3: Добавил возможность оставлять скрипты на определенных страницах. Для этого в "Управлении структурой" надо добавить новое свойство страниц "save_kernel", если равно "Y", то скрипты останутся. Это нужно для страниц, где используется штатный видео-плеер. UPD4: Обновил код, для ситуаций, когда не включено объединение и сжатие CSS, JS. UPD5: Внимание! Обратите внимание на пробелы в script и link - их нужно будет убрать в вашем коде. UPD6: Код для init.php, что бы далеко не ходить:
Лебедев Александр, с композитом по-идее всё тоже самое, т.к. композит отдает ранее созданную версию страницы и реплейс буфера будет работать. Тут проблема в другом — скрипты ядра битрикса уже будут нужны и удалять их не стоит, если композит у вас нативный. Я предпочитаю весь динамический контент своими скриптами доставать из своих же ajax-сервисов. Так и билд один получается и больше контроля над системой... но это уже совсем другая история
Через буферизацию на мой взгляд не совсем красивый Можно отнаследоваться от CMain сделать кастомный метод на основе ShowHead() , добавить распознавание публички/админки, и выдавать набор скриптов и стилей без kernel_mail, если находимся в публичке. Естественно, в header.php мы используем кастомный ShowHead вместо штатного
Сергей Гладышев, заметка уже старая, но в целом, рабочая. Если приходится брать битрикс, то лучше в комплекте с каким-нибудь SPA angular/vue/react — это избавляет от мучений и борьбы с шаблонами и компонентами битрикса.
еще пара строк для удаления новых горе-задумок: '/<sc ript.+?src=".+?bitrix\/js\/main\/loadext\/loadext[^"]+"><\/sc ript\>/', '/<sc ript.+?src=".+?bitrix\/js\/main\/loadext\/extension[^"]+"><\/sc ript\>/',
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».