Код программы, работающей на сервере, не передается клиенту. При получении от клиента специального запроса, предполагающего выполнение такой программы, сервер запускает ее и передает параметры, входящие в состав запроса. Средства для генерации подобного запроса обычно входят в состав HTML-документа.
Результаты своей работы программа оформляет в виде HTML-документа и передает их веб-серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рисунке 5.1.
Рис. 5.1. Взаимодействие клиента с программой, выполняющейся на сервере
Насыщенное интернет-приложение (Rich Internet application) – еще один подход, который заключается в использовании Adobe Flash или Java-апплетов для полной или частичной реализации пользовательского интерфейса, поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью плагинов).
Возникновение данного подхода обусловлено тем, что в рамках веб-приложений с "тонким" клиентом взаимодействие пользователя с приложением реализуется в существенной степени через сервер, что требует отправки данных на сервер, получение ответа от сервера и перезагрузку страницы на стороне клиента.
При использовании Java-апплетов в состав HTML-документа включается специальный дескриптор, описывающий расположение файла, содержащего код апплета, на сервере. После того как клиент получает HTML-код документа, включающего апплет, он генерирует дополнительный запрос серверу. После того как сервер пересылает клиенту код апплета, сам апплет запускается на выполнение. Взаимодействие между клиентом и сервером при получении апплета показано на рисунке 5.2.
Рис. 5.2. Передача клиенту Java-апплета
При использовании насыщенных интернет-приложений приходится сталкиваться со следующими проблемами:
· необходимость обеспечения безопасной среды выполнения ("песочница");
· для исполнения кода должно быть разрешено исполнение сценариев;
· потеря в производительности (т.к. выполяется на клиентской стороне);
· требуется много времени на загрузку;
Для разработки насыщенных интернет-приложений используются пакеты Curl, Adobe Flex и Microsoft Silverlight.
JavaScript - интерпретируемый язык программирования, стандартизированный международной организацией ECMA в спецификации ECMA-262. Языки JavaScript, JScript и ActionScript являются расширением стандарта ECMA-262.
Название "ECMAScript" явилось фактически компромиссом между организациями, вовлеченными в процесс стандартизации, в частности Netscape и Microsoft. Хотя JavaScript и JScript стремились к совместимости с ECMAScript, они имеют ряд дополнительных возможностей не предусмотренных спецификацией ECMA.
Синтаксис JScript во многом аналогичен языку JavaScript, однако, помимо добавления клиентских скриптов на веб-страницы и некоторых других функций, JScript может использоваться и для других целей, например:
· автоматизация администрирования систем Microsoft Windows;
· создание страниц ASP.
Язык JScript получил дальнейшее развитие в виде языка JScript.NET, который ориентирован на работу в рамках платформы Microsoft.NET
JScript - интерпретируемый, объектно-ориентированный язык. Хотя он имеет существенно меньшее количество возможностей, чем такие объектно-ориентированные языки как C++ и Java.
Возможности языка существенно ограничены:
· язык не позволяет разрабатывать самостоятельные приложения;
· сценарии на JScript могут выполняться только при помощи интерпретатора, в частности веб-браузером.
· JScript - язык без строгого контроля типов. Поэтому не требуется объявлять тип переменных явно. Кроме того, во многих случаях JScript исполняет преобразования автоматически, когда они необходимы. Например, при сложении строки и числа, число будет преобразовано в строку.
Код на JScript пишется в текстовом формате, и организован в инструкции, блоки, состоящие из связанных наборов инструкций, и комментариев. В пределах инструкции можно использовать переменные и данные, такие как строки, числа и выражения. Для объявления конца инструкции используется точка с запятой ;. Группа JScript-инструкций, заключенная в фигурные скобки {}, называется блоком.
Комментарием в JScript является текст, расположенный после // до конца строки. Многострочный комментарий начинается с /*, и заканчивается */.
Знак равенства (=) используется в JScript как присваивание. Следующий код
Pi = 3.14;
подразумевает "Присвоить значение 3.14 переменной Pi".
При сравнении двух значений на равенство применяется двойной знак равенства (==).
JScript выражения можно разделить на логические или числовые. Выражения содержат некоторые особенности, к примеру, символ "+" означает "добавить к...". Любая допустимая комбинация значений, переменных, операторов, и других выражений является выражением.
Объявление переменной перед использованием является необязательным. Для этого используется инструкция var. Инструкция var является обязательной при объявлении локальной переменной внутри функции. Разрешается объявление переменной неявно - без инструкции var. Однако, в выражениях применять необъявленные переменные не допускается. JScript различает регистр в имени переменной. Name и name рассматриваются как различные переменные.