русс | укр

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

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

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

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


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

Атрибут defer


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


 

Как уже упоминалось, сценарий может вызывать метод document.write() для ди_ намического добавления содержимого в документ. Поэтому когда HTML_анали_ затор встречает сценарий, он должен прекратить разбор документа и ожидать, пока сценарий не завершит свою работу. Стандарт HTML 4 определяет атрибут defer для тега <script>, который имеет отношение к этой проблеме.

 

Если сценарий не выполняет какого_либо вывода в документ, например опреде_ ляет функцию document.write(), но нигде ее не вызывает, то с помощью атрибута defer тега <script> можно сообщить броузеру, чтобы он спокойно продолжал об_ работку HTML_документа и отложил исполнение сценария до тех пор, пока не будет найден сценарий, выполнение которого отложено быть не может. Задерж_ ка исполнения сценария полезна, когда сценарий загружается из внешнего фай_ ла; если исполнение сценария не задержать, броузер вынужден будет ждать окончания загрузки и только потом сможет продолжить разбор содержимого до_ кумента. Задержка исполнения может привести к повышению производительно_ сти броузеров, способных использовать преимущества атрибута defer. В HTML у атрибута defer не может быть значения; он просто должен присутствовать в теге:

 

<script defer>

 

// Любой JavaScript_код, не вызывающий document.write() </script>

 

Однако в XHTML значение этого атрибута должно быть указано:

 

<script defer="defer"></script>

 

К моменту написания этих строк Internet Explorer был единственным броузе_ ром, использующим атрибут defer. При этом задержка выполняется, только ко_ гда тег <script> содержит атрибут src. Однако реализация задержки выполнена не совсем корректно, поскольку исполнение сценария с атрибутом defer всегда откладывается до окончания разбора документа, а не до того момента, когда встретится первый сценарий, исполнение которого нельзя отложить. Это озна_ чает, что отложенные сценарии в IE могут исполняться не в том порядке, в кото_ ром они располагаются в теле документа. В результате некоторые функции или переменные, востребованные в сценариях, исполнение которых не откладыва_ лось, могут быть не определены.




 

13.2. Встраивание JavaScript*кода в HTML*документы
   

 

13.2.5. Тег <noscript>

 

Язык разметки HTML определяет элемент <noscript>, предназначенный для хра_ нения отображаемого содержимого на случай, когда в броузере включен режим, запрещающий исполнение JavaScript_кода. В идеале веб_страницы должны соз_ даваться так, чтобы JavaScript_код лишь расширял их функциональные воз_ можности, а в случае его отключения страницы сохраняли свою работоспособ_ ность. Однако если это невозможно, с помощью тега <noscript> можно известить пользователя о том, что требуется включить поддержку JavaScript и, возможно, предоставить ссылку на альтернативную страницу.

 

13.2.6. Тег </script>

 

В какой_то момент вам может потребоваться с помощью метода document.write() или свойства innerHTML вывести некоторый другой сценарий (обычно в другое ок_ но или фрейм). Тогда для завершения генерируемого сценария потребуется вы_ вести тег </script>. Здесь необходима осторожность – HTML_анализатор не пыта_ ется понять JavaScript_код, и встретив строку "/script" даже внутри кавычек, он предположит, что это закрывающий тег выполняемого в данный момент сцена_ рия. Чтобы обойти это препятствие, разбейте тег на части и запишите его, напри_ мер, в виде выражения "</" + "script>", как показано в следующем фрагменте:

 

<script>

 

f1.document.write("<script>"); f1.document.write("document.write('<h2>Это сценарий в кавычках</h2>')"); f1.document.write("</" + "script>");

</script>

 

В качестве альтернативы можно экранировать символ слэша / в теге </script> с помощью символа обратного слэша:

 

f1.document.write("<\/script>");

 

В XHTML сценарии заключаются в секцию CDATA и потому проблема с закрываю_ щим тегом </script> никак не проявляется.

 



<== предыдущая лекция | следующая лекция ==>
Определение языка сценариев | Сокрытие сценариев от устаревших броузеров


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


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

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

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


 


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

 
 

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

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