русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Инициализация модуля


Дата добавления: 2015-07-09; просмотров: 1476; Нарушение авторских прав


 

Нередко мы представляем себе модуль как набор функций (или классов). Но как видно из предыдущих примеров, модули – это несколько больше, чем простое объявление функций, которые будут использоваться позже. Они включают в се_ бя программный код, который вызывается при первой загрузке и выполняет опе_ рации по инициализации и наполнению пространства имен. Модуль может со_ держать любой объем такого программного кода однократного запуска, и вполне допустимо создавать модули, не объявляющие никаких функций или классов, а просто запускающие некоторый программный код. Единственное правило, ко_ торого следует при этом придерживаться, – модуль не должен загромождать гло_ бальное пространство имен. Лучший способ добиться этого – поместить весь про_


 

204 Глава 10. Модули и пространства имен

граммный код в одну анонимную функцию, которая должна быть вызвана сразу же после того, как будет определена:

 

(function() { // Определить анонимную функцию. Отсутствие имени

// означает отсутствие глобального символа

// Тело функции находится здесь

// Здесь можно без опаски объявлять любые переменные,

// поскольку это не приведет к созданию глобальных символов.

})( ); // Конец определения функции и ее вызов.

 

Некоторые модули могут запускать свой программный код сразу же после за_ грузки. Другие требуют вызова функции инициализации позднее. Для клиент_ ского языка JavaScript существует ставшее обычным требование: модули обыч_ но предназначены для работы с HTML_документом и потому должны инициали_ зироваться после того, как документ полностью загружен веб_броузером.

 

Модуль может занимать пассивную позицию по отношению к процедуре инициа_ лизации, просто определяя и документируя функцию инициализации и предла_ гая пользователю вызвать эту функцию в нужное время. Это достаточно безопас_ ный и консервативный подход, но он требует, чтобы HTML_документ содержал достаточный объем программного JavaScript_кода, чтобы инициализировать по крайней мере те модули, с которыми он будет взаимодействовать.



 

Существует парадигма программирования (называемая ненавязчивым Java' Script'кодом и описываемая в разделе 13.1.5), в соответствии с которой модулидолжны быть полностью самодостаточными, а HTML_документы вообще не должны содержать JavaScript_код. Для создания таких «ненавязчивых» моду_ лей необходимо средство, посредством которого модули смогут самостоятельно регистрировать свои функции инициализации, чтобы те автоматически вызыва_ лись в подходящие моменты времени.

 

Пример 10.5 в конце этой главы включает в себя решение, позволяющее модулю самостоятельно зарегистрировать свою функцию инициализации. Внутри бро_ узера все зарегистрированные функции инициализации будут автоматически вызваны в ответ на событие «onload», генерируемое броузером. (Подробнее о со_ бытиях и обработчиках событий рассказывается в главе 17.)

 



<== предыдущая лекция | следующая лекция ==>
Классы в качестве модулей | Импорт символов из пространств имен


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.181 сек.