русс | укр

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

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

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

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


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

Манипулирование документом в процессе загрузки


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


 

В процессе загрузки и синтаксического анализа документа программный код JavaScript_сценария, расположенный в теге <script>, имеет возможность вста_ вить содержимое в документ с помощью метода window.write(). Другие способы манипулирования документом, в которых используются приемы и методы DOM_ программирования и которые представлены в главе 15, в тегах <script> могут быть доступны или не доступны.

 

На первый взгляд большинство броузеров предоставляют сценариям возмож_ ность манипулировать любыми элементами документа, которые расположены перед тегом <script>. Некоторые JavaScript_программисты исходят из этого предположения. Однако ни в одном стандарте такое положение вещей не регла_ ментируется, и опытные JavaScript_программисты знают, что если не определе_ но обратное, манипулирование элементами документа из сценариев, размещен_ ных в тегах <script>, может вызывать проблемы (возможно лишь иногда, лишь в некоторых броузерах или лишь тогда, когда происходит перезагрузка доку_ мента или возврат к предыдущей странице после щелчка на кнопке Назад).

 

Единственное, что точно известно об этой темной области, – это то, что безопасно можно манипулировать документом лишь после возникновения события onload, и это обстоятельство учитывается при разработке большинства JavaScript_при_ ложений – в них событие onload служит «сигналом» для выполнения всех необ_ ходимых модификаций документа. Вспомогательная подпрограмма, выполняю_ щая регистрацию обработчиков события onload, представлена в примере 17.7.

 

Когда документ содержит большие изображения или много изображений, син_ таксический разбор главного документа может завершиться задолго до того, как будут загружены все изображения и произойдет событие onload. В этом случае может потребоваться начать модификации документа до возникновения события onload. Один из способов (наиболее безопасный из обсуждаемых) заключается в том, чтобы разместить программный код в конце документа. Для IE программ_ ный код можно поместить в тег <script> с установленными атрибутами defer и src, а для Firefox – оформить его в виде недокументированного обработчика события DOMContentLoad, которое возникает после разбора содержимого документа, но до загрузки всех внешних объектов, таких как изображения.



 

Другая темная область модели исполнения JavaScript_кода касается вопроса, мо_ гут ли обработчики событий вызываться до того, как документ полностью загру_ жен? До сих пор в нашем обсуждении модели исполнения JavaScript_кода мы придерживались мнения, что все обработчики событий всегда вызываются толь_ ко после того, как отработают все сценарии. Так обычно и происходит, но ника_ кие стандарты не требуют этого. Если документ очень объемный или загрузка до_ кумента происходит через медленное сетевое соединение, броузер может отобра_ зить часть документа и позволить пользователю взаимодействовать с ним (и соот_ ветственно запускать обработчики событий) до того, как исполнены все сценарии и вызван обработчик события onload. Если в такой ситуации обработчик события обратится к функции, которая еще не определена, он потерпит неудачу. Впрочем, на практике это случается достаточно редко, потому предпринимать дополни_ тельных усилий для реализации разного рода защитных мер не требуется.


 

13.6. Совместимость на стороне клиента
   

 



<== предыдущая лекция | следующая лекция ==>
Модель управления потоками исполнения в клиентском JavaScript | Совместимость на стороне клиента


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


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

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

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


 


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

 
 

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

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