Home | О проекте | Новости | Рекламные статейки

Основы Серверного JavaScript

Серверный JavaScript имеет то же ядро языка, что и клиентский JavaScript, с которым Вы, возможно, уже знакомы. Задачи, выполняемые Вами при запуске JavaScript на сервере, несколько отличаются от задач, выполняемых при работе JavaScript на клиенте. Разные окружения и задачи обращаются к различным объектам.

1.Рекламка: s |

Клиентская среда (браузер) является передним краем работы приложения. В этой среде, к примеру, Вы отображаете HTML-страницы в окне и обслуживаете истории сессий HTML-страниц, отображаемых в браузере в течение сессии. Объекты этой среды, следовательно, обязаны иметь возможность манипулировать страницами, окнами и историей.

2.Рекламка: s | ;
x |   

По контрасту, в серверной среде Вы работаете с ресурсами сервера. Например, Вы можете установить соединение с реляционной базой данных, распределить информацию между пользователями приложения или манипулировать файловой системой сервера. Объекты этой среды обязаны иметь возможность манипулировать реляционной БД и файловой системой сервера.

Кроме того, HTML-страница не отображается на сервере. Она запрашивается на сервере для отображения на клиенте. Запрошенная страница может содержать клиентский JavaScript. Если запрошенная страница является частью приложения JavaScript, сервер может генерировать эту страницу "на лету".

При разработке приложения JavaScript помните о разнице между клиентской и серверной платформами. Различия показаны в следующей таблице.

Серверы обычно (хотя и не всегда) являются высокопроизводительными рабочими станциями с быстрыми процессорами и возможностью хранения больших объемов информации. Клиенты часто (хотя и не всегда) являются настольными системами с маломощными процессорами и относительно небольшим объемом хранимых данных.
Серверы могут быть перегружены при одновременном доступе тысяч клиентов. Клиенты часто - машины одного пользователя, поэтому можно передать часть нагрузки процессинга клиенту.
  Предварительная обработка данных на клиенте также может уменьшить требования к пропускной способности сети, если клиентское приложение может компоновать данные.

Обычно имеются разные пути распределения приложения между сервером и клиентом. Некоторые задачи могут выполняться только на клиенте или только на сервере; другие могут выполняться на любом из них. Хотя нет какого-то определённого способа определить, что и где делать, Вы может следовать следующим общим правилам:

Основное правило - использовать клиентский процессинг (тэг SCRIPT) для следующих задач:

  • Проверка ввода пользователя; то есть проверка верности введённых в форму значений
  • Запрос подтверждения пользователя и отображение диалоговых окон или информационных боксов
  • Выполнение агрегатных расчётов (таких как суммирование или вычисление среднего числа) или иной процессинг данных, запрошенных на сервере
  • "Обусловливание" (условная обработка) HTML
  • Выполнение других функций, не требующих информации с сервера

Использовать серверный процессинг (тэг SERVER) для следующих задач:

  • Обслуживание серий клиентских запросов
  • Работа с данными, распределёнными по нескольким клиентам или приложениям
  • Доступ к БД или файлам на сервере
  • Вызов внешних библиотек на сервере
  • Динамическая специализация Java-аплетов; например, визуализация данных через использование Java-аплета

Служба JavaScript Session Management Service предоставляет объекты для сохранения информации, а клиентский JavaScript преходящ. Клиентские объекты существуют, пока пользователь имеет доступ к странице. Серверы могут объединять информацию от многих клиентов и многих приложений и могут сохранять большие объёмы данных в базе данных. Важно помнить обо всех этих характеристиках при распределении функциональности между клиентом и сервером.

 
Серверный Язык
И клиентский, и серверный JavaScript реализуют язык JavaScript. Но каждый при этом добавляет специфические объекты и функции для работы в клиентской или серверной среде. Например, клиентский JavaScript включает объект form для представления формы на HTML-странице, а серверный JavaScript включает объект database для соединения с внешней реляционной БД.
В книге Клиентский JavaScript. Руководство. детально рассматривается ядро языка JavaScript и дополнительная специфика клиентского JavaScript.
ECMA, Европейская организация стандартизации систем информации и коммуникаций, выпустила стандарт ECMA-262 языка JavaScript. Вы можете загрузить эту спецификацию с сайта ECMA по адресу http://www.ecma.ch.
 
Прототипы

Вы можете использовать свойство prototype многих классов, чтобы добавлять новые свойства в класс и во все его экземпляры. Как описано в разделе "Классы и Объекты", серверный JavaScript добавляет несколько классов и предопределённых объектов. В новых классах, имеющих свойство prototype, оно работает в серверном JavaScript точно так же, как и в клиентском JavaScript.

Вы можете использовать свойство prototype для добавления новых свойств в классы Blob, Connection, Cursor, DbPool, File, Lock, Resultset, SendMail и Stproc. Кроме того, Вы можете использовать свойство prototype класса DbBuiltin для добавления свойств в предопределённый объект database. Обратите внимание, что Вы не можете создать экземпляр класса DbBuiltin; вместо этого Вы используете объект database, предоставляемый машиной выполнения JavaScript.

Вы не можете использовать prototype с объектами client, project, request и server.

Так же, как и в клиентском JavaScript, Вы можете использовать свойство prototype для любого класса, который Вы определяете в своём приложении.

Помните, что все приложения JavaScript на сервере работают в одной среде. Вот почему Вы можете распределять информацию между клиентами и приложениями. Следствием этого, однако, является то, что при использовании свойства prototype для добавления нового свойства в любой серверный класс, добавленный языком JavaScript, новое свойство доступно всем приложениям, работающим на сервере, а не только приложению, в котором это свойство было добавлено. Это даёт возможность легко добавлять функциональность всем приложениям JavaScript на Вашем сервере.

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

 
Использование

Вам необходимо знать, как компилятор приложений JavaScript распознаёт клиентский и серверный JavaScript в HTML-файле.

Операторы клиентского JavaScript могут появляться в следующих ситуациях:

  • Как операторы и функции внутри тэга SCRIPT
  • При специфицировании файла как JavaScript-исходника для тэга SCRIPT
  • При специфицировании выражения JavaScript как значения HTML-атрибута
  • При включении операторов как обработчиков событий в некоторых тэгах HTML

Операторы серверного JavaScript могут появляться в следующих ситуациях:

  • Как операторы и функции внутри тэга SERVER
  • При специфицировании файла как JavaScript-исходника для компилятора приложений JavaScript
  • При специфицировании выражения JavaScript как значения или имени HTML-атрибута

Заметьте, что Вы не можете специфицировать оператор серверного JavaScript как обработчик события.


footer:
Rambler's Top100