В каком месте страницы поместить Web-сценарий?
Проблема
Я не знаю, в каком месте HTML-кода страницы мне поместить свой Web-сценарий.
Подскажите, пожалуйста!
Решение
Вообще, правило здесь достаточно простое — Web-сценарии прочитываются и
выполняются Web-обозревателем в том месте HTML-кода, где они находятся, и в
порядке от начала страницы к ее концу (сверху вниз, если смотреть на листинг
HTML-кода страницы) — именно в таком порядке Web-обозреватель загружает
Web-страницу. А вот где именно поместить тот или иной сценарий, зависит от его
назначения.
Сценарии, содержащие объявления глобальных переменных и функций и выполняющие
какие-либо подготовительные действия, лучше помещать в секцию заголовка
Web-страницы (в тег <head>). Такие сценарии будут обработаны
Web-обозревателем в самую первую очередь, еще до загрузки тела Web-страницы
(содержимого тега <body>).
Сценарии, выводящие какой-либо текст на Web-страницу, нужно поместить
в соответствующие места секции тела страницы (тега <body>).
Сценарии, которые должны быть выполнены после загрузки всего
содержимого страницы, лучше всего поместить в самый конец ее HTML-кода. Зачастую
их помещают даже после закрывающего тега </html>. Также эти сценарии можно
оформить в виде обработчика события onLoad тега <body>. (Об обработчиках
событий и самих событиях мы поговорим далее в этой главе.)
Народ советует
Пожалуй, лучше и оформлять их в виде обработчика события onLoad тега
<body>. Так делают чаще всего.
Очень часто на многих Web-страницах используются одни и те же функции и
переменные (и псевдоконстанты, о которых шла речь в главе 1). Разумеется,
объявления всех этих функций и переменных дублируются в коде всех страниц, где
они используются. А это сильно увеличивает размер файлов страниц и усложняет
техническую поддержку (например, чтобы исправить ошибку в одной функции,
придется просматривать все ее объявления на всех использующих ее страницах).
В качестве выхода можно посоветовать поместить все объявления функций и
псевдоконстант в отдельный файл сценариев. Файлы сценариев имеют текстовый формат (как и файлы HTML) и расширение js. Они должны содержать только
сам код JavaScript без тегов <script>.
Чтобы использовать объявленные в файле сценариев функции и переменные в
Web-странице, этот файл нужно сначала к ней подключить. Выполняется это с
помощью такого вот тега:
<SCRIPT SRC="<Имя файла сценария>"></SCRIPT>
Этот тег практически всегда помещается в секции заголовка страницы (в теге
<head>). В конце концов, файлы сценариев практически всегда содержат
объявления функций и псевдоконстант, которые должны быть загружены и обработаны
в самую первую очередь. А именно секция заголовка страницы грузится самой
первой.
Народ замечает
Файлы сценариев имеют еще одно преимущество. Как известно, Web-обозреватели
сохраняют на жестком диске (кэшируют) все загруженные из Интернета файлы.
Впоследствии, если какой-либо файл на Web-сервере не изменился,
Web-обозреватель, чтобы не загружать его повторно, открывает с жесткого диска
его кэшированную копию, что ощутимо увеличивает производительность. А, как
правило, файлы сценариев, в отличие от Web-страниц, изменяются крайне редко,
поэтому Web-обозреватель практически всегда для работы использует их
кэшированные копии.