- •114. Синтаксис команд OpenGl
- •119. Состав и назначение интегрированной среды визуальной разработки. Использование визуальных компонентов.
- •120. Списки и их использование в Прологе
- •121. Способы и устройства получения стереоизображений
- •122. Средства распределения данных субд Oracle
- •1. Удаленные dml-операции.
- •2. Синхронные удаленные вызовы процедур (rpc)
- •124. Стек протоколов tcp/ip
- •126. Css. Подключение таблиц стилей. Способы использования.
- •125. Структура общего решения линейного однородного дифференциального уравнения 2-го порядка
- •127. Структурная схема эвм и процессоров Intel
- •128. Структурный анализ потоков данных. Методология dfd.
- •129. Структуры данных, используемые в пролог программе
- •130. Сущность структурного подхода при проектировании больших систем
- •131. Схема распределения данных. Теория сравнений
- •132. Техническое задание на разработку программы (в соответствии с гост 19.201-79)
- •133. Технология Web Broker. Структура серверного Web-приложения
- •134. Технология постановки/проверки электронной цифровой подписи посредством CryptoAip
- •135. Технология шифрования/расшифрования посредством CryptoAip
- •137. Транзакции в многопользовательском режиме работы
- •138. Управление криптографическими ключами посредством CryptoAip
- •139. Управление криптопровайдерами посредством CryptoAip
- •140. Управление открытыми ключами (cертификаты, стандарт х.509, инфраструктуры систем с открытыми ключами)
- •141. Упрощённая модель компилятора. Функции лексического, синтаксического, семантического анализатора, генератора кода. Взаимодействие блоков компилятора. Проходы компилятора
- •142. Формула полной вероятности и формула Байеса
- •145. Функции двух переменных
- •146. Функции переноса, поворота и масштабирования и их параметры в OpenGl
- •Void glMatrixMode (gLenum mode)
- •Void glLoadMatrix[f d] (gLtype *m)
- •Void glPushMatrix (void)
- •Void glPopMatrix (void)
- •Void glMultMatrix[f d] (gLtype *m)
- •147. Функции. Параметры функций. Способы обмена информацией между функциями
- •149. Функциональный стек lamp
- •150. Цветовые схемы rgba и cmyk
- •151. Что такое операционная система (ос). Основные понятия, концепции ос: системные вызовы; Прерывания; Файлы; Процессы, потоки; Оболочка; Адресное пространство
- •152. Язык JavaScript. Назначение. Способ использования
152. Язык JavaScript. Назначение. Способ использования
При генерации страниц в Web возникает дилемма, связанная с архитектурой "клиент-сервер". Страницы можно генерировать как на стороне клиента, так и на стороне сервера. В 1995 году специалисты компании Netscape создали механизм управления страницами на клиентской стороне, разработав язык программирования JavaScript.
JavaScript - это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента. Если быть более точным, то JavaScript - это не только язык программирования на стороне клиента. Liveware, прародитель JavaScript, является средством подстановок на стороне сервера Netscape. Однако наибольшую популярность JavaScript обеспечило программирование на стороне клиента.
Основная идея JavaScript состоит в возможности изменения значений атрибутов HTML-контейнеров и свойств среды отображения в процессе просмотра HTML-страницы пользователем. При этом перезагрузки страницы не происходит. На практике это выражается в том, что можно, например, изменить цвет фона страницы или интегрированную в документ картинку, открыть новое окно или выдать предупреждение.
JavaScript-код исполняет браузер. В него встроен интерпретатор JavaScript. Следовательно, выполнение программы зависит от того, когда и как этот интерпретатор получает управление. Это, в свою очередь, зависит от функционального применения кода. В общем случае можно выделить четыре способа функционального применения JavaScript:
гипертекстовая ссылка (схема URL);
обработчик события (в атрибутах, отвечающих событиям);
подстановка (entity);
вставка (контейнер <SCRIPT> ).
Способ 1: URL-схема "JavaScript:"
Схема URL (Uniform Resource Locator) - это один из основных элементов Web-технологии. Каждый информационный ресурс в Web имеет свой уникальный URL. URL указывают в атрибуте HREF контейнера A, в атрибуте SRC контейнера IMG, в атрибуте ACTION контейнера FORM и т.п. Все URL подразделяются на схемы доступа, которые зависят от протокола доступа к ресурсу, например, для доступа к FTP-архиву применяется схема ftp, для доступа к Gopher-архиву - схема gopher, для отправки электронной почты - схема mailto. Тип схемы определяется по первому компоненту URL (http://*).
В URL можно размещать сложные программы и вызовы функций. Таким образом, при программировании гипертекстового перехода JavaScript-интерпретатор получает управление после того, как пользователь "кликнул" по гипертекстовой ссылке.
<A HREF="JavaScript:alert('Внимание!!!');">Кликни здесь</A>
Способ 2: обработчики событий
Такие программы, как обработчики событий, указываются в атрибутах контейнеров, с которыми эти события связаны. Например, при нажатии на кнопку происходит событие Click и соответственно вызывается обработчик этого события onClick:
<FORM><INPUT TYPE=button VALUE="Кнопка"
onClick="alert('Вы нажали кнопку');">
</FORM>
А в момент завершения полной загрузки документа (он связан с контейнером <BODY> ) происходит событие Load и, соответственно, будет вызван обработчик этого события onLoad:
<BODY onLoad="alert('Приветствуем!');">
...
</BODY>
Способ 3: подстановки
Подстановки (entity) поддерживаются только браузером Netscape Navigator 4.0. Они встречаются на Web-страницах довольно редко. Тем не менее это достаточно мощный инструмент генерации HTML-страницы на стороне браузера. Подстановки имеют формат: &{код_программы}; и используются в качестве значений атрибутов HTML-контейнеров. В следующем примере поле ввода INPUT будет иметь, в качестве значения по умолчанию, адрес текущей страницы, а размер поля будет равным количеству символов в этом адресе.
В случае подстановки JavaScript-интерпретатор получает управление в момент разбора браузером (компонент парсер ) HTML-документа. Как только парсер встречает конструкцию &{..}; у атрибута контейнера, он передает управление JavaScript-интерпретатору, который, в свою очередь, после исполнения кода это управление возвращает парсеру. Таким образом, данная операция аналогична подкачке графики на HTML-страницу.
Способ 4: вставка (контейнер <SCRIPT>)
Контейнер SCRIPT - это развитие подстановок до возможности генерации текста документа JavaScript-кодом. В этом смысле применение SCRIPT аналогично Server Side Includes, т.е. генерации страниц документов на стороне сервера. При разборе документа HTML-парсер передает управление JavaScript-интерпретатору после того, как встретит тег начала контейнера <SCRIPT>. Интерпретатор получает на исполнение весь фрагмент кода внутри контейнера SCRIPT и возвращает управление HTML-парсеру для обработки текста страницы после тега конца контейнера </SCRIPT>.
Помещать JavaScript-код на HTML-странице с помощью контейнера <SCRIPT> можно двумя способами. Первый состоит в написании текста кода непосредственно внутри этого контейнера:
<SCRIPT>
a = 5;
</SCRIPT>
Второй способ состоит в том, чтобы вынести код JavaScript в отдельный файл, например, myscript.js (расширение может быть любым), и затем включить его в HTML-страницу следующим образом:
<SCRIPT SRC="myscript.js"></SCRIPT>
Язык JavaScript - регистро-зависимый. Это означает, что все переменные, функции, ключевые слова и т.п. должны набираться в том же регистре, в каком они заданы в языке или в программе пользователя. Например, если Вы объявили переменную var myText='Привет', то в дальнейшем ее можно использовать только как myText, но не MyText. В этом кроется частая ошибка, которую допускают программисты на JavaScript. Она усугубляется еще и тем, что JavaScript не требует явно декларировать переменные, и встретив MyText, интерпретатор может решить, что это новая (но не объявленная) переменная.
Это касается и всех встроенных объектов, свойств и методов языка. Например, объектом является document. Вызов document.write() нельзя записать как Document.write() или document.Write(). К свойству объекта document, задающему цвет фона Web-страницы, можно обратиться только как document.bgColor, а метод этого же объекта, выдающий элемент с заданным идентификатором " id5 ", можно вызвать только как document.getElementById("id5").
Названия событий, такие как Click (щелчок мышью), DblClick (двойной щелчок мышью), Load (окончание загрузки документа) и т.п. сами по себе не являются элементами синтаксиса. Обработчики же соответствующих событий могут появляться в двух контекстах:
внутри кода JavaScript - в этом случае регистр имеет значение. Например, чтобы при возникновении события Load вызывалась функция myFunction, мы должны написать: window.onload = myFunction. Названия обработчиков событий onload, onmouseover и т.п. в таком контексте должны быть написаны маленькими буквами;
как атрибут какого-либо HTML-контейнера - в этом случае регистр не важен.
