Какие факторы учесть при использовании AJAX-режима
Asynchronous Javascript and XML или сокращенно AJAX позволяет менять содержимое страницы без ее перезагрузки. Это должно ускорить работу сайта и сделать его удобнее. Но по факту все не так хорошо.
Мы не рекомендуем в решениях Аспро использовать стандартный AJAX-режим в каталоге от 1С-Битрикс. Часть функционала мы реализовали с собственным режимом AJAX, поэтому могут возникать конфликты.
Если все же вы хотите использовать стандартный режим AJAX, используйте его осторожно. Учитывайте, что не весь функционал будет работать корректно. Чтобы немного улучшить работу, включите настройки в параметрах компонента:
- Включить автопрокрутку к началу компонента, иначе страница откроется на середине, что неудобно для пользователя.
- Включить подгрузку стилей, чтобы страница не выглядела «поломанной».
- Включить эмуляцию навигации браузера. Если этого не сделать, ЧПУ не будет изменяться в адресной строке, что приведет к проблемам с индексацией или бану страниц. Также вместо текущих страниц могут проиндексировать старые.
- Использовать мгновенную фильтрацию при включенном AJAX с активированным параметром: «Включить эмуляцию навигации браузера». Без этой комбинации фильтр не будет применяться корректно. А именно по кнопке сбоку «Показать» в ссылку не будет подставляться условие фильтра, из-за чего при перезагрузке или возврату на страницу фильтр сбросится. Кнопки снизу же будут работать, но страница перезагрузится, что не соответствует логике работы AJAX.
Все опции вы найдете в настройках параметра компонента. Для этого нажмите в режиме правки на шестеренку, например, в разделе каталога:
Во вкладке «Управление режимом AJAX» вы найдете первые 3 настройки и сможете включить режим.
На шаблоне компонента default в разделе «Настройки фильтра» вы найдете параметр «Мгновенная фильтрация при включенном AJAX».
AJAX-фильтр Аспро
Мы понимаем, что поиск по фильтру — один из наиболее востребованных паттернов подбора товаров. Поэтому для наших пользователей в качестве альтернативы фильтрации товаров без перезагрузки от 1С-Битрикс мы сделали собственный AJAX-фильтр. Он более отлажено работает на готовых решениях Аспро.
AJAX-фильтр подключается в административной части сайта. Разберем на примере решения Аспро: Премьер. Перейдите в Аспро (1) → Аспро: Премьер (2) → Настройки (3) → Каталог (4) → Ajax фильтр (5).
У части решений AJAX-фильтр включается в параметрах компонента каталога, например, в Аспро: Максимум.
Проблемы AJAX-режима
Мы рекомендуем сознательно подходить к использованию AJAX-режима на платформе 1С-Битрикс и готовых решениях Аспро. Разберем проблемы, которые возникнут при подключении функционала.
1С-Битрикс
- Если не использовать ЧПУ (человекопонятный URL) при фильтрации, в адресную строку не будет подставляться запрос фильтра. Это значит, что пользователи не смогут отправить ссылку на отфильтрованные товары друзьям и коллегам.
- При переходе назад без перезагрузки страницы содержимое может отображаться некорректно. Также при возвращении остается старый фильтр.
- При использовании пагинации страница открывается на уровне скролла, если выключена опция «Прокрутка к началу компонента». Например, если на последней странице строк товаров меньше, чем на предыдущей — страница откроется на уровне футера.
- Если включить или отключить режим правки, то редактора страницы перенесет в корень раздела.
Аспро
- Не отображаются хлебные крошки, которые устанавливаются из модуля умный SEO. Для этого потребуется перезапустить страницу.
- При активации AJAX-фильтра исчезает вертикальный фильтр, если перейти в каталог, раздел или подраздел.
- Не сбрасывается значение свойств фильтра после нажатия на крестик.
- В карточке товара не будут отображаться блоки связанных товаров.
Итог
Мы проверили AJAX-режим на компоненте «Каталог», для которого чаще всего используют функционал. Незнание тонкостей настройки способно привести к неправильной работе сайта.
Чтобы AJAX-режим был удобным, дополнительные параметры должны изначально входить в функционал, а не подключаться через отдельные опции. Пока что не рекомендуем использовать AJAX с решениями Аспро, если хотите использовать весь функционал. Если все же решитесь использовать, тогда учитывайте особенности, о которых мы написали выше.