Оформление
Настройки бандла
Поведение JS-скрипта на сайте настраивается через объект config, который передаётся в init сразу после кода проекта:
html
<script>
ninja('init', '<project code>', config);
ninja('start');
</script>Поля ниже относятся ко всем продуктам раздела Сайт — персонализациям, A/B-тестам и действиям по правилам, — хотя в названиях исторически фигурирует слово personalization.
Доступные поля
| Поле | Тип | По умолчанию | Что делает |
|---|---|---|---|
debug | boolean | true | Пишет диагностические логи бандла в консоль браузера |
debugRequests | boolean | false | Дополнительно логирует сетевые запросы бандла |
updatePersonalizationOnChangeState | boolean | true | Повторно запрашивает и применяет варианты при смене пути URL (pathname) — для SPA с такой маршрутизацией |
Те же значения можно поменять после старта методами:
html
<script>
ninja('setDebug', false);
ninja('setUpdatePersonalizationOnChangeState', false);
</script>Что считается переходом в SPA
Автоматическое обновление реагирует на изменение пути: например, /catalog → /product/42. Изменение только query (?color=red) или hash (#reviews) не запускает этот переход: персонализация автоматически не обновляется, параметры страницы не сбрасываются.
Если ваш сайт использует query/hash для маршрутизации, после подготовки нужных данных вызывайте applyPersonalization явно. При необходимости сначала очистите старые параметры через clearPageParams и задайте новые. Ручной вызов перепроверяет варианты; он не заменяет весь цикл перехода страницы и не пересоздаёт сессию. Повторять init/start для этого не нужно.
Примеры
Переопределить несколько полей при старте:
html
<script>
ninja('init', '<project code>', {
debug: false,
updatePersonalizationOnChangeState: true
});
ninja('start');
</script>Передать только то, что нужно изменить — остальные поля остаются по умолчанию:
html
<script>
ninja('init', '<project code>', {
debug: false
});
ninja('start');
</script>