Навигация keyboard_arrow_down

Блог Rss rss_feed

Понимание JavaScript архитектуры в PrestaShop

Понимание JavaScript архитектуры в PrestaShop

JavaScript играет ключевую роль в современной веб-разработке, особенно в платформах типа PrestaShop, где динамичные и интерактивные элементы необходимы для безупречного пользовательского опыта. С версии 1.7 PrestaShop внедрил структурированную архитектуру JavaScript, направленную на повышение производительности и поддержки тем и модулей.

Основные JavaScript файлы

На каждой странице PrestaShop загружаются два основных JavaScript файла:

  • core.js: Этот файл инициализирует jQuery3, обеспечивает выполнение AJAX-запросов и определяет основные методы, необходимые для всех функциональных элементов фронтенда.
  • theme.js: Содержит код и библиотеки, специфичные для темы, адаптированные под дизайн и функциональные возможности конкретного магазина.

jQuery, предоставляемый core.js, обеспечивает единообразие без необходимости повторного определения, что оптимизирует управление ресурсами и улучшает время загрузки.

Обработка событий и делегирование

Одним из ключевых архитектурных решений в JavaScript PrestaShop является механизм обработки событий:

Отправка событий

События отправляются с использованием метода prestashop.emit, что позволяет модулям и темам вызывать пользовательские события с данными:

prestashop.emit('myEventName', { myData1: 1, myData2: 3 });
Прослушивание событий

Слушатели могут реагировать на эти события с помощью метода prestashop.on, обеспечивая отзывчивое поведение при взаимодействии внутри магазина:

if (typeof prestashop !== 'undefined') { prestashop.on('myEventName', function (event) { var eventDatas = {}; if (event && event.reason) { eventDatas = { my_data_1: event.reason.myData1, my_data_2: event.reason.myData2 }; } // Обработка данных события по необходимости }); }
Предопределенные события

PrestaShop также отправляет множество предопределенных событий из core.js, охватывающих ключевые действия, такие как обновление корзины, изменение адреса, шаги оформления заказа и обновление списка продуктов. Такой структурированный подход на основе событий обеспечивает модульность и гибкость настройки поведения магазина без прямого вмешательства в DOM.

Делегирование событий

Для сохранения целостности событий после динамических изменений DOM (например, через AJAX), PrestaShop использует делегирование событий. Этот метод прикрепляет обработчики событий к родительским элементам, таким как body, обеспечивая их эффективную работу:

const body = $('body'); // События делегированы элементу body const event = jQuery.Event('click'); event.target = body.find('.js-theClassYouNeed'); body.trigger(event);

В заключение, внедрение структурированной JavaScript архитектуры в PrestaShop с версии 1.7 и выше демонстрирует соблюдение лучших практик веб-разработки. Использование jQuery для основных функций, эффективная обработка событий и делегирование обеспечивают не только оптимизацию производительности, но и упрощают интеграцию пользовательских функциональностей и модулей.

Напишите в комментариях, как вам такой подход к JavaScript в PrestaShop?

Был ли этот пост полезен для вас?

    
На данный момент комментариев нет
close

Checkout

close

Избранное