Стоит помнить, что в 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, что бы далеко не ходить:
Постоев Олег, видимо. Попробуем сделать так. В одной из веток форума с вашим участием читал, что разработчики пофиксят подгрузку данных скриптов для неавторизованных юзеров. Но увы, грузит и добавляет лишние запросы до сих. Жаль, что не прислушались.
Бородаенко Денис, решение хорошее, но так не получится управлять отдельно каждым подключаемым скриптом/стилем. Практика показывает, что иногда это нужно.
Удивительно даже не то, что эти скрипты есть, а то, что они не минимизированы хотя бы. Бородаенко Денис, не прокатит, если включен режим сжатия и объединения CSS.
Фаст Александр написал: Удивительно даже не то, что эти скрипты есть, а то, что они не минимизированы хотя бы.
В одной из других подобных тем один из разработчиков битрикса ответил примерно так: "включайте gzip на сервере". Это не цитата, но смысл таков, что заниматься этим вопросом они не хотят, ведь есть gzip. Что бы хоть как-то изменить ситуацию я добавил идею, надеюсь это поможет двигаться в сторону оптимизации.
А яксы стандартных компонентов в публичной части работают при отключении библиотек ядра? Помню на двух сайтах не работали без $APPLICATION->ShowHead(), что-то еще было, но было это 1-1,5 года назад, может что-то уже и изменилось, надо разобраться с этим.
Scrooge, на сколько я знаю - нет, JS практически всех модулей завязан на этом ядре. На сайтах визитках в первую очередь страдает компонент вывода карт, на бмзнесе - корзина, но её без штатной библиотеки почти нереально запустить, велики трудозатраты. А вот карты можно заменить обычным конструктором.
Постоев Олег, а я сейчас понял саму идею, это очень хрошо подходит для сайтов, где не нужен аякс - визитки, блоги и т.д., просто я одни магазины делаю последние 2 года, только про них сразу и думаю)) Ок, я добавил в закладки, как-нибудь поэксперементирую, люблю эту тему по оптимизации, очень рад, что я не один!
Сделал замеры на своем сайте в режиме dev без кеширования на хостинге Бегет, завтра буду переносить сайт на SSD VPS в Москве, если Вам будет интересно, могу поделиться результатом только переноса сайта на VPS с shared Бегет))) Было: https://monosnap.com/image/cN9j01AQqdo...HHBGNx.png
Scrooge, SSD поможет быстрее архивирвать сайты, переносить, распаковывать... время загрузки страницы принципиально не меняется. Этим летом переезжали с HDD на SSD. Все таки верстка и разработка имеют очень большую роль, я бы даже сказал, значительно бОльшую чем сервер, если это конечно не пентиум 2 с 50 сайтами.
Постоев Олег написал: Все таки верстка и разработка имеют очень большую роль, я бы даже сказал, значительно бОльшую чем сервер, если это конечно не пентиум 2 с 50 сайтами
Все верно! А меня интересуют показатели сжатия nginx и сравнение, насколько может улучшить переезд ответ сервера, отдачу, размер страницы и т.д., по сравнению с shared, вот как-то так. Не именно SSD, но все равно, он имеет значение во всех операциях с диском.
В общем, местоположение при тестах надо учитывать, иначе при смене сервера перед клиентом будет как-то неудобно)) Вообще, на глаз заметно быстрей страница открывается, если все на сайте оптимизировать, переехать на SSD VPS в Москве, и потом показать клиенту, чтобы он разницу почувствовал, толк будет, работа выполнена.
Я как-то показывал клиенту, когда делал по шагам, он разницы не почувствовал, ну так, что-то говрит есть)) Так что, лучше частями не показывать, делать надо полную оптимизацию и потом показывать клиенту, иначе он ничего не почувствует, т.к. у него дома Webstrim 1Mb/s OMG))
Scrooge, gtmetrix лучше как перечень рекомендаций использовать. Он по умолчанию загружает сайт на сервер в америке, а российских серверов у него нет вообще, поэтому общее время загрузки для него больше зависит от количества файлов которые нужно загрузить, чем от оптимизации или их размера. За все время был только один клиент, который просил оптимизировать сайт и то только потому что google page speed показал не очень высокий балл. Сейчас есть пара серверов на hetzner'е, пинг и скорость загрузки от них (Германия) в среднем лучше, чем у многих местных хостингов, правда, в основном это было связано с качеством связи у местных провайдеров.
У меня на Новотелекоме в Новосибирске пинги практически до всех зарубежных хостеров большие 80-140, либо трасерты большие и полумертвые. А если Новотелеком во время работ переключают на какой-то резервный канал, то там вообще засада, поэтому я только в Москве сейчас VPS покупаю, ну и сайты конечно только местные делаю, Новотелеком самый крупный провайдец в Новосибирске.
У меня при этом возможность логина отваливается. И пока висит вот эта строка '/<sc ript.+?src=".+?kernel_main\/kernel_main\.js\?\d+"><\/sc ript\>/', не реагирует на вход.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».