Компания “Волжское пароходство” — это больше 3 тысяч сотрудников, часть из которых используют Битрикс24 во время перевозок. По пути следования судна интернет не везде стабильный, поэтому нужен был максимально облегченный вариант портала. О том, как доработать систему для использования в местах со слабым сигналом рассказываю в этой статье.
Что сделали.
Коробочная версия Битрикс24 предлагает несколько решений по уменьшению веса страницы и ускорению загрузки. Это минификация и объединение скриптов и стилей, а также кеширование html страниц. Однако, к сожалению, этих мер, как правило, недостаточно.
Главным требованием клиента было создание версии корпоративного портала с минимальным выводом изображений на страницах. Некоторые изображения необходимо было оставить (например, в шапке интерфейса портала), а остальные в облегченном режиме не прогружать.
Создание отдельного шаблона портала повлекло бы большие трудозатраты, поэтому мы дорабатывали собственное готовое решение “Индивидуальная главная страница”.
Отмена загрузки изображений с помощью js-скрипта не помогла — изображения все равно тратили интернет фоном, если успели встать в очередь загрузки браузера.
Решением стало обработка уже готового сформированного кода страницы до отдачи браузеру в событии OnEndBufferContent. В готовой верстке нашли теги «img» и удалили у них атрибут «src». Это привело к тому, что верстку переделывать не пришлось, но изображения перестали загружаться. Также, нашли все элементы, у которых атрибут «style» содержит «url» и заменили «background-image» на «background-image-disabled».
Для упрощения поиска тегов в верстке использовали класс php DomDocument. Работа с этим классом позволила определять иерархию тегов и проверить, например, атрибуты родителя или потомков и не ограничивать вывод изображения по определенным условиям.
Размер загружаемой страницы снизился с 38 Мбайт до 20 Мбайт (из них на изображения приходится всего 400 Кбайт) число загружаемых картинок составило всего 40 вместо 151.
На главную страницу портала добавили переключатель режимов. При переключении режима сохранили выбор в сессию пользователя и его настройки на портале.
Такой подход позволил добиться результата минимальными трудозатратами и в кратчайшие сроки.
Надеюсь, наш опыт будет полезен тем, кто столкнётся с подобной задачей. Но если вы знаете как еще проще обеспечить сотрудников с плохим интернетом доступом в корпоративный портал, буду рад комментариям.
BigD
Да уж..