Атрибут defer

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

С помощью атрибута defer тега <script> можно сообщить браузеру, чтобы он спокойно продолжал обработку HTML-документа и отложил исполнение сценария до тех пор, пока не будет найден сценарий, выполнение которого отложено быть не может.

Задержка исполнения сценария полезна, когда сценарий загружается из внешнего файла; если исполнение сценария не задержать, браузер вынужден будет ждать окончания загрузки и только потом сможет продолжить разбор содержимого документа. Задержка исполнения может привести к повышению производительности браузеров, способных использовать преимущества атрибута defer. В HTML у атрибута defer не может быть значения; он просто должен присутствовать в теге:

<script defer>

// Любой JavaScript - код, не вызывающий document.write()

</script>

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

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

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

Тег <noscript>

Язык разметки HTML определяет элемент <noscript>, предназначенный для хранения отображаемого содержимого на случай, когда в браузере включен режим, запрещающий исполнение JavaScript - кода.

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

Тег </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> никак не проявляется.

 

Нестандартные атрибуты тега <script>

В корпорации Microsoft были определены два нестандартных атрибута тега <script>, которые работают только в Internet Explorer. Атрибуты event и for позволяют задавать обработчики событий с помощью тега <script>. Атрибут event определяет имя обрабатываемого события, а атрибут for– имя, или идентификатор (ID), элемента, для которого этот обработчик предназначается. Сценарий исполняется, когда в заданном элементе возникает заданное событие.

Эти атрибуты работают только в IE, а достигаемый ими эффект легко может быть реализован другими способами. Эти атрибуты никогда не следует использовать – они упомянуты здесь лишь для того, чтобы вы знали об их существовании, если вдруг придется столкнуться с ними в существующих веб - страницах.

 

При написании скрипта следует учитывать следующие особенности языка.

· В языке Java Script важен регистр! Например, переменные x и X – это разные переменные.

· Нельзя свободно переносить на другие строки элементы выражений. Скажем, если при выводе на печать используется метод document.write(), то необходимо разместить команду в одной строке. В случае, если часть выражения не помещается, нужно разбить строку вывода на два оператора.

· Отдельные операторы отделяются «;»








Дата добавления: 2015-08-01; просмотров: 721;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.