JavaScript. Подробное руководство, 6-е издание, стр. 170
Пример 13.1. Простой клиентский сценарий на языке JavaScript, исследующий содержимое документа
<b><!DOCTYPE html></b><b><html></b><b> <head></b><b> <style></b><b> /* Стили CSS для этой страницы */</b><b> .reveal * { display: none: } /* Элементы с атрибутом class="reveal" невидимы */</b><b> .reveal *.handle { display: block;} /* Кроме элементов c class= "handle" */</b><b> </style></b><b> <script></b><b> // Ничего не делать, пока документ не будет загружен полностью </b><b> window.onload = function() {</b><b> // Отыскать все контейнерные элементы с классом "reveal" </b><b> var elements = document.getElementsByClassName("reveal"); </b><b> for(var i = 0; i < elements.length; i++) { // Для каждого такого элемента... </b><b> var elt = elements[i];</b><b> // Отыскать элементы с классом "handle" в контейнере </b><b> var title = elt.getElementsByClassName("handle")[0];</b><b> // После щелчка на этом элементе сделать видимым остальное содержимое </b><b> addRevealHandler(title, elt);</b><b> }</b><b> function addRevealHandler(title, elt) { </b><b> title.onclick = function() {</b><b> if (elt.className == "reveal") elt.className = "revealed";</b><b> else</b><b> if (elt.className == "revealed") elt.className = "reveal";</b><b> }</b><b> }</b><b> };</b><b> </script></b><b> </head></b><b> <body></b><b> <div class="reveal"></b><b> <h1 class="handle">Щелкните здесь, чтобы увидеть скрытый текст</h1></b><b> <p>Этот абзац невидим. Он появляется после щелчка на заголовке.</p></b><b> </div></b><b> </body></b><b></html></b>Во введении к этой главе отмечалось, что некоторые веб-страницы ведут себя как документы, а некоторые - как приложения. Следующие два подраздела исследуют применение JavaScript в обоих типах веб-страниц.
13.1.1. Сценарии JavaScript в веб-документах
Программы на языке JavaScript могут манипулировать содержимым документа через объект
<b>Document</b><b>Element</b>Программный код на языке JavaScript в веб-документах обычно должен использоваться ограниченно и выполнять определенную роль. Основная цель использования JavaScript - облегчить пользователю получение или отправку информации. Работа пользователя не должна зависеть от наличия поддержки JavaScript в броузере; сценарии на JavaScript можно отнести к подручным средствам, которые:
• Создают анимационные и другие визуальные эффекты, ненавязчиво руководя действиями пользователя и помогая ему передвигаться по странице.
• Сортируют столбцы таблиц, упрощая пользователю поиск требуемой информации.
• Скрывают определенное содержимое и отображают детали по мере «погружения» пользователя в содержимое.
13.1.2. Сценарии JavaScript в веб-приложениях
Веб-приложения применяют все возможности JavaScript и DHTML, которые используются в веб-документах, но помимо управления содержимым, его представлением и поведением они также используют преимущества других фундаментальных механизмов, предоставляемых веб-броузерами.
Чтобы понять суть веб-приложений, важно осознать, что веб-броузеры развивались не только как инструменты для отображения документов и давно уже трансформировались в некоторое подобие простых операционных систем. Сравните: традиционные операционные системы позволяют создавать ярлыки (представляющие файлы и приложения) на рабочем столе и в папках. Веб-броузеры позволяют создавать закладки (представляющие документы и веб-приложения) на панели инструментов и в папках. Операционные системы выполняют множестве приложений в отдельных окнах; веб-броузеры отображают множество документов (или приложений) в отдельных вкладках. Операционные системы определяют низкоуровневые API для организации сетевых взаимодействий, рисования графики и сохранения файлов. Веб-броузеры определяют низкоуровневые API для организации сетевых взаимодействий (глава 18), сохранения данных (глава 20) и рисования графики (глава 21).
Представляя веб-броузеры как упрощенные операционные системы, веб-приложения можно определить как веб-страницы, в которых используется программный код на языке JavaScript для доступа к расширенным механизмам (таким как сетевые взаимодействия, рисование графики и сохранение данных) броузеров. Самым известным из этих механизмов является объект XMLHttpRequest, который обеспечивает сетевые взаимодействия посредством управляемых НТТР-запросов. Веб-приложения используют этот механизм для получения новой информации с сервера без полной перезагрузки страницы. Веб-приложения, использующие этот прием, часто называют Ajax-приложениями, и они образуют фундамент того, что известно под названием «Web 2.0». Объект XMLHttpRequest во всех подробностях рассматривается в главе 18.