Запуск и остановка слушателей в среде Mojo (WebOS) - PullRequest
6 голосов
/ 23 октября 2010

Я запускаю разработчика WebOS и у меня есть сомнения относительно того, где мне начинать и останавливать своих слушателей?Я читаю эту книгу, но не смог найти четкого объяснения этому.В примере автор установил слушателей в функции настройки, но мне интересно, почему?не лучше ли установить их в функцию активации и остановить их в функции деактивации, как это предлагается в комментариях шаблона?

В случае, если я ошибаюсь, какие события должны и не должны 't включить в настройку и активировать функции?

Когда точно настраиваются, активируются, деактивируются, вызываются функции очистки?

StoryViewAssistant.prototype.setup = function() {
    //HERE, OK?
    this.nextStoryHandler = this.nextStory.bindAsEventListener(this); 
    this.previousStoryHandler = this.previousStory.bindAsEventListener(this); 
    this.controller.listen("nextStory", Mojo.Event.tap, this.nextStoryHandler); 
    this.controller.listen("previousStory", Mojo.Event.tap,this.previousStoryHandler);
    /* add event handlers to listen to events from widgets */

};

StoryViewAssistant.prototype.activate = function(event) {
    //HERE? 
    /* put in event handlers here that should only be in effect when this scene is active. For example, key handlers that are observing the document */
};

StoryViewAssistant.prototype.deactivate = function(event) {
    //HERE? 
    /* remove any event handlers you added in activate and do any other cleanup that should happen before this scene is popped or another scene is pushed on top */
};

StoryViewAssistant.prototype.cleanup = function(event) {
    //HERE, OK?
    this.controller.stopListening("nextStore", Mojo.Event.tap, this.nextStoryHandler);
};

1 Ответ

5 голосов
/ 27 октября 2010

Настройка помощника сцены вызывается , когда создается сцена, вызывается cleanup , когда она извлекается из стека.В setup фактическое содержимое HTML элементов управления недоступно, так как шаблон для сцены еще не обработан.Метод ready вызывается, если он доступен после обработки этого шаблона, и это хорошее место для любых других изменений HTML DOM. активировать вызывается непосредственно перед тем, как сцена становится активной, в то время как деактивировать вызывается, когда сцена выталкивается или на нее надевается другая сцена. активация / * деактивация * также вызывается, когда приложение сворачивается на карту или возвращается в полноэкранный режим.

Обычно лучше запускать и останавливать прослушиватели событийпри активации / деактивации - это сокращает время их работы до минимума, а меньшее количество активных слушателей делает систему более отзывчивой.

...