Синхронный и асинхронный для публикации публикации подписки между объектами JavaScript - PullRequest
1 голос
/ 12 января 2012

Я реализовал шаблон публикации подписки в модуле JavaScript, который будет использоваться полностью ориентированными на клиента объектами JavaScript.Этот модуль не имеет никакого отношения к связи между клиентом и сервером в какой бы то ни было форме или форме.

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

В качестве очень упрощенного примера, скажем, я создаю пользовательский интерфейс для виджета видеоплеера HTML5:

Один из моих модулей - это модуль "видео", который содержит элемент VIDEO и обрабатывает различныеособенности и события, связанные с этим элементом.Это, вероятно, будет иметь пространство имен что-то вроде "widgets.player.video."

Другой модуль "управления", который имеет различные кнопки - воспроизведение, пауза, громкость, scrub, полноэкранный и т. Д. Это может иметьпространство имен по типу «widgets.player.controls».

Эти два модуля являются дочерними по отношению к родительскому модулю «player» («widgets.player» ??), и поэтому не должны обладать внутренними знаниямидруг друга, когда создаются как дочерние объекты объекта «player».

Очевидно, что элементы «control» должны иметь возможность вносить некоторые изменения в видео (нажмите «Play», и видео должно воспроизводиться),и наоборот (событие videoUpdate видео запускается, и визуальное отображение текущего времени в элементах управления должно обновляться).

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

SO (спасибо за поддержкуи я) в этом сценарии есть ли преимущество, так или иначе, для синхронной публикации по сравнению с асинхронной публикацией?Я видел некоторые решения, опубликованные в Интернете, которые допускают использование одного или нескольких параметров с логическим флагом, тогда как другие автоматически делают это асинхронно.Я лично не видел реализацию, которая просто автоматически работает с синхронной публикацией ... это потому, что в этом нет никакого преимущества?

Я знаю, что могу добиться этого с помощью функций, предоставляемых jQuery, но кажется, чтоздесь может быть слишком много накладных расходов.Шаблон подписки на публикацию может быть реализован с помощью относительно легкого кода, разработанного специально для этой конкретной цели, поэтому я бы предпочел использовать более универсальную систему обработки событий, такую ​​как jQuery (которую я буду использовать для более общих задач обработки событий: -).

...