Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проверить пользовательские ф-и и запустить (https://javascript.ru/forum/misc/49247-proverit-polzovatelskie-f-i-i-zapustit.html)

NitroGenerate 04.08.2014 18:34

Проверить пользовательские ф-и и запустить
 
Доброго времени суток.
Решил себе сделать гибкий интерфейс проверки пользовательских функций и их запуск.

Что хочется:
У меня есть функция Ф1, которая вызывается в нужный момент. Хочется подцепить в этой функции какой-нибудь обработчик пользовательских функций.
И получится, что при вызове Ф1, она параллельно проверит все пользовательские функции, если таковые будут на странице, их может быть от 0 до n кол-ва, и по очереди запустит их.

Вопрос, как это можно реализовать? Моих знаний js явно не хватает для его решения.

ixth 04.08.2014 22:45

Wat? Что такое «пользовательские функции»?

NitroGenerate 05.08.2014 13:37

Объясню на прмере дргого языка, PHP.
Допустим мы добавляем новость на сайт, при добавлении новости в код я "вшиваю" событие "onAddNews",
В бд записаны слушатели этого события, которые запускают соответствующие модули. (эти модули я и назвал "пользовательские функции")
Так вот, я смотрю в БД слушателей onAddNews, если нахожу то им передаю объект новости и они что-то с ним делают.

Тоже самое мне бы сделать на JS, что бы был главный скрипт. Который бы выявлял слушателей на то или иное событие(не путать с событиями в JS). Например onAddNews или onDeleteComment. Искал в докумене все скрипты, которые "слушают" это событие и сам их запускал.

Тем самым, как мне кажется, можно будет реализовать гибкость функционала. И в любом месте страницы я добавляю событие onDeleteComment и знаю, что оно точно будет вызвано, если будет удаляться коммент.

Vlasenko Fedor 05.08.2014 22:50

NitroGenerate,
жаль, что и c php ты также не сильно дружишь :)
Самый простой пример на php http://blog.kron0s.com/writing-an-event-system-in-php
Посложнее Наблюдатель (шаблон проектирования)
JS Свои события, подписка-уведомление


Часовой пояс GMT +3, время: 05:34.