Пуш против тяги в реактивном банане
Я создаю приложение, похожее на медиаплеер, используя реактивный банан.
Допустим, я хочу Behavior
который представляет текущую выбранную дорожку в списке дорожек.
У меня есть два варианта: использовать fromPoll
получить текущий выбор, когда это необходимо; или использовать fromChanges
и подписаться на событие изменения выбора.
Я использую выбранный трек Behavior
только когда пользователь нажимает кнопку "Play". Это событие гораздо более редкое, чем изменение выбора.
Учитывая это, я бы предположил, что fromPoll
будет лучше / эффективнее, чем fromChanges
в этой ситуации. Но в документах говорится, что "рекомендуемый способ получения Behavior
с помощью fromChanges
".
Это все еще применяется здесь? Т.е. будет ли действие опроса выполняться чаще, чем оно фактически используется (выбирается) сетью?
1 ответ
В текущей версии (0.7) реактивного банана, fromPoll
Функция на самом деле создает поведение, значение которого определяется путем выполнения действия опроса всякий раз, когда происходит какое-либо событие.
По сравнению, fromChanges
будет обновлять поведение только тогда, когда имеет место конкретное событие, указанное в качестве аргумента.
Другими словами, в текущей реализации, fromPoll
всегда менее эффективен, чем fromChanges
,
Опять же, я бы сейчас не слишком беспокоился об эффективности, потому что пока не потратил много времени на внедрение подходящих оптимизаций. Просто используйте то, что проще всего сейчас, и сохраните все проблемы эффективности для будущих версий реактивного банана.