JS JavaScript

[0].nextSibling.data 
replace text after element.

Когда случается что-то интересное, модули сообщают об этом другим частям приложения, а промежуточный слой интерпретирует их сообщения и необходимым образом реагирует на них.
в этой слабосвязанной архитектуре модули всего лишь публикуют события (в идеале, не зная о других модулях в системе). Медиатор используется для подписки на сообщения от модулей и для решения, каким должен быть ответ на уведомление. Паттерн фасад используется для ограничения действий разрешенных модулям.

В следующем примере функция library используется для объявления новой библиотеки и автоматически при создании библиотеки (т.е. модуля), связывает вызов метода init с document.ready.


function library(module) {
  $(function() {
    if (module.init) {
      module.init();
    }
  });
  return module;
}

var myLibrary = library(function() {
   return {
     init: function() {
       /* код модуля */
     }
   };
}());

К примеру, модуль может отправить сообщение dataValidationCompletedWriteToDB. В подобных случаях задача фасада — убедиться, действительно ли этот модуль имеет права на запись в базу данных. Таким образом, мы пытаемся предотвратить проблемы с модулями, которые пытаются делать то, что они не должны.


В этой главе мы кратко пройдемся по некоторым зонам ответственности медиатора, который играет роль ядра приложения. Но для начала давайте разберемся, что он представляет собой в целом.
Основная задача ядра — управлять жизненным циклом модулей. Когда ядро получает интересное сообщение от модулей, оно должно определить, как приложение должно на это отреагировать, таким образом ядро определяет моментзапуска или остановки определенного модуля или набора модулей.


тут как бы пространство имен в модуле:
var buttonNameSpace = (function () {
    return {
        /**         * Module means public interface with scope(can be modules, classes, variables).         * It's like usual class with public methods BUT differ is that scope can consist from another classes, modules and variables.         */        Button: (function () {
            /**             * private taskClass scope             **/            // public interface            return {
                disableButton: function () {
                    userTodayAlreadyChangedLevel = true;
                    console.log('click this.buttonNameSpace().button.disableButton()');
                    $('button#change-level').prop('disabled', 'disabled');
                    $('button#change-level').prop('disabled', true);
                }
            }
        }())
    }
}());

Комментарии

Популярные сообщения из этого блога

kafka конспект однако

Дэвид Рок: Ваш мозг на работе - Разговоры в Гугле

Отслеживание Процесса загрузки с PHP и JavaScript