![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| fish9370 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: нет Всего: 1 |
Добрый день,
есть у меня модули, на php, я стараюсь делать так чтобы каждый из них был независим от других, как на стороне сервера так и на стороне клиента, но иногда требуется их взаимодействие. Привожу пример: 1) модуль "Поиск", на стороне клиента ajax-форма, на стороне сервера поиск и выдача. 2) модуль "Фильтр" работает исключительно на стороне клиента, отображает выдачу постранично, сортирует результаты, может фильтрануть еще по каким-то признакам и т.д. задача: при поступлении новых данных, модуль "Поиск" должен маякнуть модулю "Фильтр" об изменениях, своеобразный onChange для фильтруемого объекта.. как было уже отмечено, они не должны ничего знать друг о друге.. решение: 1) после загрузки страницы, в модуле фильтр производится проверка на существования глобального массива коллбэк-функций, если его нет он его создает. 2) регистрирует себя в этом массиве 3) коллбэк-функция при вызове делает проверку обслуживаемого объекта, если объект в ее зоне ответственности, производит обработку, иначе выход 4) в ajax-функции, при получении новых данных, после дабавления их в указанную ветвь DOMа, производится вызов всех зарегистрированных коллбэк функций, с передачей ссылки на объект реализация:
* * *
больше всего интересует как это все можно улучшить, возможно существует готовый jquery-плагин управления коллбэк-функциями, любая помощь приветствуется.. Это сообщение отредактировал(а) fish9370 - 19.4.2012, 10:44 -------------------- undefined |
||||||
|
|||||||
| ksnk |
|
||||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Вообще-то то, что описано хорошо укладывается в событийный метод обработки.
При поступлении новых данных модуль Фильтр генерирует событие - DataChanged ( к примеру )
Все заинтересованные в этом событии сущности (модуль Поиск) обязаны поставить свой обработчик этого события
то есть из 4 пунктов 2 уже сделаны ;) Название события в CamelCase стиле - чтобы не пересечься случайно с чьими-нибудь событиями. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||||||
|
|||||||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: нет Всего: 1 |
вот видете, как иногда полезно спросить.. ksnk, большое тебе спасибо.. ставлю плюс, но тему не закрываю, надо сначала попробовать.. -------------------- undefined |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |