Вы здесь

Как подключать скрипты модулей при AJAX-навигации по сайту?

0

Имеется сайт, у которого бóльшую часть каждой страницы занимает гугл-карта (geolocation common map), а сбоку имеется небольшой сайдбар с основным контентом, содержащим большое количество внутренних ссылок (страна, город, архитектор, дом, фотки дома и т.п.) На данный момент вся навигация прекрасно работает, только при переходе по каждой ссылке перегружается вся страница вместе с гугл-картой, что долго, а при большом количестве пользователей будет еще и накладно. Поставил Ajax links API, навигация по сайдбару забегала без перезагрузки страницы, НО:
на сайте используется изрядное количество модулей с джаваскриптами, которые сейчас грузятся по умолчанию в самом верху и в самом низу html.html.twig. Часть скриптов/модулей используется только контентом, который внутри сайдбара (причем разный контент может требовать разных скриптов), часть только тем, что вне сайдбара, а что-то (jquery к примеру) может использоваться и там, и там. Если не включать скрипты в ajax.html.twig, то они и не перезапускаются при перезагрузке контента через ajax, ибо настроены на $(document).ready, который в этом случае не стреляет. Если включить скрипты (js-placeholder) в ajax.html.twig, то многие скрипты оказываются включены в документ дважды, что их ломает. Выкинуть js-placeholder из html.html.twig и переставить в page.html.twig прямо в сайдбар, который перегружается ajax'ом, тоже не вариант, так как это наверняка сломает функциональность geolocation и гуглокарты, которые живут вне этого сайдбара.
В общем как бы мне правильно разместить скрипты, чтобы всё работало?

Версия Drupal: 
8.x
Категория: 
AJAX
Вопрос задан 27.01.2017 - 19:54

Ответы