Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASCII и latin.docx
Скачиваний:
3
Добавлен:
08.08.2019
Размер:
190.09 Кб
Скачать

1 Здесь функция alert() используется просто для отображения информации: она

преобразует свой аргумент в строку и выводит ее в диалоговом окне. Подробнее

метод alert() описывается в разделе 14.5. В примере 15.9 приводится альтернати

ва функции alert(), не создающая всплывающих диалоговых окон, для закрытия

которых требуется выполнить щелчок.13.2. Встраивание JavaScript*кода в HTML*документы 259

<script>alert(square(2));</script>

В примере 13.1 показан HTMLфайл, включающий простую JavaScriptпрограм

му. Обратите внимание на различие между этим примером и многими фрагмен

тами кода, показанными в этой книге ранее: пример интегрирован в HTMLфайл

и имеется понятный контекст, в котором он работает. Обратите также внимание

на атрибут language в теге <script>. Его описание приводится в разделе 13.2.3.

Пример 13.1. Простая JavaScript'программа в HTML'файле

<html>

<head>

<title>Сегодняшняя дата</title>

<script language="JavaScript">

// Определяем функцию для дальнейшего использования

function print_todays_date() {

var d = new Date(); // Получаем текущие дату и время

document.write(d.toLocaleString()); // Вставляем это в документ

}

</script>

</head>

<body>

Дата и время:<br>

<script language="JavaScript">

// Теперь вызываем определенную ранее функцию

print_todays_date();

</script>

</body>

</html>

Пример 13.1 помимо всего прочего демонстрирует использование функции docu

ment.write(). В клиентском JavaScript эта функция может применяться для вы

вода HTMLтекста в той точке документа, в которой располагается сценарий (бо

лее подробно об этом методе рассказывается в главе 15). Обратите внимание: спо

собность сценариев генерировать текст для вставки в HTMLдокумент означает,

что синтаксический анализатор HTMLкода должен интерпретировать Java

Scriptсценарии как часть общего процесса синтаксического разбора документа.

Невозможно просто взять и объединить все сценарии в документе и запустить по

лучившийся результат как один большой сценарий уже после окончания разбора

документа, потому что любой сценарий, находящийся в документе, может изме

нить этот документ (обсуждение атрибута defer приводится в разделе 13.2.4).

13.2.2. Сценарии во внешних файлах

Тег <script> поддерживает атрибут src. Значение этого атрибута задает URLад

рес файла, содержащего JavaScriptкод. Используется он следующим образом:

<script src="../../javascript/util.js"></script>

Файл JavaScriptкода обычно имеет расширение .js и содержит JavaScriptкод

в «чистом виде» без тегов <script> или любого другого HTMLкода.

Тег <script> с атрибутом src ведет себя точно так же, как если бы содержимое ука

занного файла JavaScriptкода находилось непосредственно между тегами <script>

и </script>. Любой код, указанный между этими тегами, игнорируется броузера260 Глава 13. JavaScript в веб*броузерах

ми. Обратите внимание, что закрывающий тег </script> обязателен даже в том

случае, когда указан атрибут src и между тегами отсутствует JavaScriptкод.

Использование тега с атрибутом src дает ряд преимуществ:

• HTMLфайлы становятся проще, т. к. из них можно убрать большие блоки

JavaScriptкода, что помогает отделить содержимое от поведения. Атрибут src

является краеугольным камнем применения парадигмы ненавязчивого Java

Scriptкода (подробнее об этой парадигме рассказывалось в разделе 13.1.5).

• JavaScriptфункцию или другой JavaScriptкод, используемый несколькими

HTMLфайлами, можно держать в одном файле и считывать при необходимо

сти. Это уменьшает объем занимаемой дисковой памяти и намного облегчает

поддержку программного кода.

• Когда JavaScriptфункции требуются нескольким страницам, размещение

кода в виде отдельного файла позволяет броузеру кэшировать его и тем са

мым ускорять загрузку. Когда JavaScriptкод совместно используется не

сколькими страницами, экономия времени, достигаемая за счет кэширова

ния, явно перевешивает небольшую задержку, требуемую броузеру для от

крытия отдельного сетевого соединения и загрузки файла JavaScriptкода

при первом запросе на его исполнение.

• Атрибут src принимает в качестве значения произвольный URLадрес, поэто

му JavaScriptпрограмма или вебстраница с одного вебсервера может вос

пользоваться кодом (например, из библиотеки подпрограмм), предоставляе

мым другими вебсерверами.

У последнего пункта есть важное следствие, имеющее отношение к обеспечению

безопасности. Политика общего происхождения, описываемая в разделе 13.8.2,

предотвращает возможность взаимодействия документов из одного домена с со

держимым из другого домена. Однако следует отметить, что источник получения

самого сценария не имеет значения, значение имеет источник получения доку

мента, в который встраивается сценарий. Таким образом, политика общего про

исхождения в данном случае неприменима: JavaScriptкод может взаимодейство

вать с документами, в которые он встраивается, даже если этот код получен из

другого источника, нежели сам документ. Включая сценарий в свою вебстраницу

с помощью атрибута src, вы предоставляете автору сценария (или вебмастеру до

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]