Является ли запуск события в списке плохой для производительности?

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

Однако я всегда обеспокоен тем, что эти «призывы» оказывают негативное влияние на производительность.

Если вы создаете компонент, позвольте ему называть его com_mycomponent, также обычно создается папка с именем «mycomponent» внутри папки плагинов и создавать триггеры событий в стратегических точках компонента

JPluginHelper::importPlugin(“mycomponent”);

$dispatcher =& JDispatcher::getInstance();

$dispatcher->trigger('OnThisThingToHappen', array() )

Что произошло, если у меня есть несколько активных плагинов внутри «plugins /mycomponent»? Я думаю, каждый раз, когда вы запускаете событие, все эти плагины будут загружены, а их код интерпретируется php, чтобы проверить ответ на событие? Это не так тяжело?

И наконец, вопрос, который заставил меня написать это.

Если у меня есть представление списка элемента, могу ли я включить триггер события в шаблон элемента? Он будет работать на каждом элементе, поэтому повторная загрузка и разбор всех активных плагинов в вашей группе также будет повторяться.

2 голоса | спросил Piero Marsilio 2 MarpmMon, 02 Mar 2015 14:52:50 +03002015-03-02T14:52:50+03:0002 2015, 14:52:50

1 ответ


1

Это не плохо само по себе.

Проблема заключается в том, какая дополнительная нагрузка генерируется каждым вызовом. Например, просто добавить SQL-запрос, затем каждый вызов выполняет запрос, а представление завершает выполнение N запросов.

Таким образом, лучше всего вызвать триггер - начало или конец итерации, когда элемент готов к созданию.

Наконец, JLayouts - это альтернатива, позволяющая упростить сторонние улучшения без триггеров.

ответил Anibal 3 MarpmTue, 03 Mar 2015 13:28:29 +03002015-03-03T13:28:29+03:0001 2015, 13:28:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132