Server-side и client-side JavaScript совместно используют тот же самый базовый язык. Этот базовый язык соответствует ECMA-262, язык создания сценариев, стандартизированный Европейским органом стандартов, с некоторыми добавлениями. Базовый язык содержит набор основных объектов, типа объектов Array
и Date
. Он также определяет другие свойства языка типа выражений, инструкций и операторов. Хотя server-side и client-side JavaScript используют те же самые основные функциональные возможности, в некоторых случаях они используют их по разному. Вы можете загрузить PDF версию ECMA-262 спецификации.
Компоненты JavaScript проиллюстрированы на Рисунке 1.1.
Client-Side JavaScript
Web браузеры типа Netscape Navigator 2.0 (и более поздние версии) могут интерпретировать инструкции JavaScript client-side, внедренные в страницы HTML. Когда браузер (или клиент) требует такую страницу, сервер посылает полное содержание документа, включая инструкции HTML и JavaScript, по сети клиенту. Клиент читает страницу сверху до низу, отображает результат HTML и выполняет инструкции JavaScript, когда они встречаются. Этот процесс производит результаты, которые пользователь видит и это проиллюстрировано на Рисунке 1.2.
Рисунок 1.2 Client-side JavaScript.
Server-Side JavaScript
Server-side JavaScript также внедряется в HTML страницы. Инструкции server-side могут соединяться с реляционными базами данных различных продавцов, совместно использовать информацию независимо от пользователей приложения, обращаться к файловой системе на сервере, или связываться с другими приложениями через LiveConnect и Java. Скомпелированное JavaScript приложение может также включать client-side JavaScript в дополнение к server-side JavaScript.
В первой стадии, показанной на Рисунке 1.3, Вы (разработчик) создаете HTML страницы (которые могут содержать и client-side и server-side инструкции JavaScript) и JavaScript файлы. Вы затем компилируете все эти файлы в одну выполняемую программу.
Рисунок 1.3 Server-side JavaScript в течение разработки.
Во второй стадии, показанной на Рисунке 1.4, страница в приложении запрашивается браузером пользователя. Двигатель времени выполнения использует выполняемую программу приложения, чтобы искать источник страницы и динамически генерировать HTML страницу для возврата. Он выполняет любые инструкции server-side JavaScript, найденные на странице. Результатом этих инструкций может быть добавление новых HTML или client-side JavaScript инструкций к HTML странице. Затем посылает возникающую в результате страницу через сеть клиенту Navigator, который показывает результаты.
Рисунок 1.4 Server-side JavaScript в течение выполнения.
Объекты JavaScript
JavaScript имеет предопределенные объекты для базового языка, также как дополнения для client-side и server-side JavaScript.
JavaScript имеет следующие основные объекты:
Array
, Boolean
, Date
, Function
, Math
, Number
, Object
, String
Следующие дополнительные client-side объекты:
Anchor
, Applet
, Area
, Button
, Checkbox
, document
, event
, FileUpload
, Form
, Frame
, Hidden
, History
, Image
, Layer
, Link
, Location
, MimeType
, navigator
, Option
, Password
, Plugin
, Radio
, Reset
, screen
, Select
, Submit
, Text
, Textarea
, Window
Эти объекты представляют информацию, уместную в работе с JavaScript в web браузере. Многие из этих объектов связаны друг с другом, встречаясь как значения свойств. Например, чтобы обратиться к изображениям в документе, Вы используете массив document.images
, каждый из элементов которого объект Image
. Рисунок 1.5 показывает иерархию объектов client-side.
Рисунок 1.5 Связи между объектами client-side
blob
, client
, Connection
, Cursor
, database
, DbPool
, File
, Lock
, project
, request
, Resultset
, SendMail
, server
, Stproc
Как показано на Рисунке 1.6, некоторые дополнительные объекты server-side также имеют иерархию.
Рисунок 1.6 Свизи между объектами LiveWire
Защита JavaScript
Navigator версии 2.02 и более поздние автоматически предотвращают доступ сценариев на одном сервере к свойствам документов на другом сервере. Это ограничение предотвращает получение сценариями частной информации типа структуры каталогов или истории сессии пользователя.
Для информации о заражении данных и подписывании сценариев, смотрите Главу 7, "Защита JavaScript," в Руководстве по JavaScript.
Последняя Модификация: 10/31/97 12:29:51
Все мессаги сюда:yanich@inbox.ru |