Технологии Internet☛Уроки программирования ✎ |
Средства компьютерной коммуникации позволяют решить две важнейшие задачи:
1. Обеспечения циркуляции информационных потоков, направленных на доведение до сведения субъектов рынка позиции, на которую претендует организация или марка ее товара. Без этого невозможно достичь эффективного согласования спроса и предложения между участниками процесса рыночного обмена, поскольку отличительные качества товара не будут известны целевой группе потенциальных покупателей.
2. Обеспечения циркуляции информационных потоков между сотрудниками организации, а также между сотрудниками и внешними источниками информации. Без этого невозможно создать надлежащие условия для эффективной работы.
Все большее значение при решении этих задач приобретают такие инструменты коммуникаций, как Интернет (Internet) и Интранет (Intranet).
Поскольку компании все шире используют Интернет как средство осуществления бизнеса и инструмент для коммуникаций, эта сеть быстро становится основным средством взаимодействия коммерческих организаций друг с другом, стремительно растет и оборудуется все более «дружественными к бизнесу» средствами, такими как безопасные средства электронной покупки и продажи и т.п. .
Одной из важнейших служб Интернет является Word Wide Web. Огромный объем и постоянное обновление информации делает Web чрезвычайно полезным средством для тех сотрудников, которым необходимо получать данные для отчетов, сведения о новой продукции и т.д. Word Wide Web позволяет легко узнать, чем занимаются конкуренты, исследовать тенденции, изучить новые технологии и материалы. Кроме того, Web-узлами пользуются различные правительственные учреждения и профессиональные организации, что позволяет иметь более простой и эффективный способ изучения важной информации, чем телефон или обычная почта.
Организовав свой Web-узел, крупные и малые компании могут почувствовать те огромные преимущества, которые дает им присутствие в Интернет. Создав такую «виртуальную витрину», предприятие получает доступ к широкой аудитории и может взаимодействовать со своими покупателями, поскольку потребительская аудитория рассматривает Web как удобный и надежный способ доступа к необходимой конкретной информации, которую можно получить в любое время. В Интернете компании «открытые» 24 часа в сутки и 7 дней в неделю. Информация может постоянно обновляться, а потребители в любое время могут получить нужные им сведения - больше узнать о продуктах компании или решить свои проблемы. Предоставление доступа к информации в режиме On-line позволяет компаниям обслуживать большее количество покупателей в расчете на каждую вложенную денежную единицу и более качественно удовлетворять потребности своих клиентов.
Частная корпоративная сеть, использующая технологии Интернет, называется интрасети, или Интранет. Предоставляя разнообразные методы коммуникаций и средства доступа к информации, она позволяет сохранять и очень быстро пересылать большие объемы данных, превращаясь в прекрасное средство публикации и распространения больших, насыщенных графикой документов. Используясь как единое централизованное хранилище документов, с которыми компания считает нужным ознакомить своих сотрудников, Интранет предоставляет каждому из них возможность с помощью программы-броузера обращаться к огромному массиву корпоративных данных. Важно, что все эти документы легкодоступные для работающих в сети сотрудников, которые с помощью броузера получают преимущества мгновенного доступа к актуальной информации, хранящейся в центральном архиве. Это позволяет существенно сократить или вовсе исключить затраты на печать документов.
При публикации на узлах сети важных внутренних документов, включая внутренние правила, различные процедуры, связанные с кадрами, сведения о сотрудниках, пособия, данные о продукции, рекламную информацию, отчеты отраслевых аналитиков, прайс-листы и каталоги, интрасеть становится для организации идеальным средством предоставления информации своим сотрудникам.
Предоставляя быстрый доступ к разнообразной информации в масштабах всей организации, интрасеть позволяет сотрудникам в полной мере чувствовать себя членами единой команды и работать более эффективно, а организации функционировать злагоднише и продуктивнее. Именно поэтому для многих компаний интрасеть стала неотъемлемой частью их информационной системы, кардинально изменив характер внутренних коммуникаций.
Основные службы и принципы работы Internet
Поскольку Internet предлагает разнообразные полезные методы коммуникации и способы доступа к информации, то изучение этой темы следует начинать с анализа основных средств и служб и направлений их применения. К ним относятся электронная почта, FTP, Gopfer, Mailling lists, USENET, World Wide Web.
Способы передачи данных в Internet регламентируются рядом протоколов. Так, протоколы POP (Post Office Protocol - почтовый протокол) и SMTP (Simple Mail Transfer Protocol - простой протокол пересылки и получения файлов) являются стандартами электронной почты. Благодаря протоколу FTP (File Transfer Protocol - протокол передачи файлов) в Internet происходят пересылки и получения файлов, а по протоколу NNTP (Network News Transer Protocol - протокол передачи сетевых новостей) можно обмениваться сообщениями с группами новостей. Фундамент, на котором базируются все средства передачи данных и проектирование интерфейса в среде WWW, образуют протокол HTTP и язык HTML. Протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP) определяет способ передачи гипертекста, а также способ взаимодействия HTTP-сервера и HTTP-клиента. Язык разметки гипертекста (Hyper Text Markup Language, HTML) определяет вид Web-страниц, загружаемых в броузер.
Длительный период среду World Wide Web (WWW) - новейшей службы Internet, которая очень быстро развивается, - было почти совсем статичным, поскольку по протоколу HTML размеченный текстовое содержимое HTML-файла просто пересилався пользователям. С появлением Web-серверов появилась возможность применять сценарии взаимодействия с пользователями. Благодаря такой технологии стало возможным использование форм, осуществление поиска информации и обработка данных. Язык Java позволила создавать программы и автоматически загружать их для выполнения в Web-броузер. Это показало, что повсеместно в рамках среды WWW может выполняться прикладная программа, которая не выдвигает никаких специальных требований к операционной системе или технических средств. Достаточно иметь только броузер. Это был революционный прорыв, который создал новую концепцию разработки программ и привлек внимание к Internet фирмы Microsoft. В результате появились такие продукты, как MS Internet Explorer, MS Internet Information Server, ActiveX и VBScript. Второе значительное изменение в использовании WWW связана с перенесением в эту среду известной концепции разработки программ типа клиент - сервер.
Следовательно, можно сделать вывод, что характерной особенностью современного развития WWW является то, что он базируется не столько на каких нововведениях, сколько на переносе в эту среду известных средств и методологий и с этой позиции может рассматриваться как обычное расширение традиционных бизнес-приложений.
WWW описывается, как правило, в терминах взаимодействия между клиентом и сервером с помощью транзакций, где в качестве клиента выступает Web-броузер, который формирует запрос к серверу. Задачей протокола HTTP является обеспечение быстрой и эффективной доставки HTTP-транзакций. Как и любую другую транзакцию между сервером и клиентом, HTTP-транзакцию можно рассматривать как общение, при котором клиент посылает запрос, а сервер отвечает на него. Важной особенностью HTTP является его контекстная независимость. Это означает, что общение между HTTP-клиентом и HTTP-сервером кратковременное и непостоянное, то есть после выдачи сервером ответа на запрос клиента связь между ними прерывается и никакая информация об обмене в памяти не сохраняется.
По статической взаимодействия общения между клиентом и сервером выполняется по следующей схеме: получая запрос, сервер формирует ответ, а броузер получает и форматирует содержимое ответа. При этом никакие сценарии не выполняются, а изменение внутреннего состояния программ не влечет изменения поведения их.
В отличие от этого активный клиент или сервер в процессе взаимодействия способны обрабатывать события. Так, активный клиент может получить информацию от сервера и представить ее в совершенно ином виде. Аналогично, сервер, получив запрос на определенную информацию, может сначала отнять ее из базы данных и отформатировать таким образом, чтобы представить свой ответ в определенном виде.
В целях могут использоваться различные схемы активного взаимодействия между клиентом и сервером. Если программа предназначена для работы на простых компьютерах клиентов, то большую часть обработки данных лучше выполнять на активном сервере. Напротив, если программа предназначена для значительного количества клиентов, имеющих мощные компьютеры, производительность системы можно повысить, переложив часть функций, связанных с обработкой данных, на клиента.
Наиболее эффективной является взаимодействие между активным HTTP-клиентом и активным HTTP-сервером. При этом обработка информации может быть сбалансирована и выполняться там, где это целесообразно.
Процесс обмена информацией между сервером и клиентом происходит в четыре этапа:
1. Клиент устанавливает связь с сервером, используя его Internet-адрес и номер порта, «прослушивается» применением сервера.
2. Клиент запрашивает информационный ресурс (файл или программу), кроме того, он предоставляет некоторую информацию о себе в виде полей заголовка.
3. После получения запроса сервер выдает ответ, содержащий информацию о состоянии транзакции (успешное завершение, ошибка и т.д.) и данные для клиента.
4. Предоставив ответ, сервер прерывает соединение без сохранения информации о транзакции.
Эти этапы проходит каждый запрос, формируемый клиентом к серверу. Поэтому, если HTML-документ содержит несколько рисунков, элементов ActiveX или апплетов-Java, каждый такой объект обрабатывается в именно такой способ, то есть для каждого информационного ресурса, к которому есть обращение, нужно организовывать отдельное соединение (соединение). И хотя это приводит к дополнительным затратам времени, однако Web-сервер имеет возможность одновременно удовлетворять нескольким клиентам.
Разметка гипертекста
Web-страницы можно разрабатывать в различных целях. Но в любом случае используется язык разметки гипертекста (Hyper Text Markup Language, или HTML). Это структурированная речь, определяющий различные компоненты Web-страницы.
Как язык разметки HTML содержит встроенные инструкции, описывающие внешний вид документа. Эти инструкции реализован в виде тегов (дескрипторов), которые можно вставлять в текст с целью форматирования его. Например, теги, предназначенные для подчеркивания текста, выглядят так: <U> и </ U>. Это парный тег (в большинстве случаев теги парные). Первый элемент парного тега обозначает начало текста, форматируется, а второй - конец. Таким образом, если нужно подчеркнуть текст, то он размещается между тегами:
<U> Пример подчеркнутого предложения </ U>
В общем, документ HTML - это текстовый файл, с которым можно работать в любом текстовом редакторе и который имеет расширение htm или html.
Как уже отмечалось, для рассылки HTML-файлов используется HTTP протокол. При получении HTML-файла в HTTP-сообщении броузер должен сделать синтаксический анализ и интерпретировать HTML-текст. Интерпретируются только теги, то есть команды языка HTML. Все остальное, что не расшифровывается как команды языка, просто выводится на экран броузера.
Любой HTML-документ должен начинаться и заканчиваться тегами <HTML> и </ HTML>, указывающие браузеру, что между ними находится HTML-текст. После тега <HTML> обычно располагается заголовок документа, находящийся между тегами <HEAD> i </ HEAD>. Этот раздел содержит информацию о самом документе и название документа, которая размещается между тегами <TITLE> i </ TITLE> и отображается в заголовке окна броузера:
<HTML>
<HEAD> <TITLE> Информационное сообщение </ TITLE> </ HEAD>
</ HTML>
Следующий элемент HTML-документа - его тело, определяется тегами <BODY> и </ BODY>. Здесь размещается текст, который выводится в окне броузера. В тексте документа с помощью специальных тегов могут быть определены логические заголовки, которые отображаются шрифтом большего размера. Размер шрифта не задается явно, а зависит от уровня заголовка. Всего существует шесть уровней: от 1 - самый высокий уровень (шрифт большого размера) до 6 (шрифт маленького размера). Так, текст, размещенный между тегами <H1> и </ H1>, будет отображаться в броузере шрифтом наибольшего размера, а между тегами <H6> и </ H6> - шрифтом маленького размера.
Кроме тегов заголовков, в HTML есть широкий набор других тегов, которые позволяют явно задавать шрифт, его размер, вставлять горизонтальные линии, определять цвет фона и вставлять в текст изображения (табл. 7.2 [1]). Благодаря постоянно растущему набору тегов HTML имеет репутацию гибкой языка форматирования, которая делает возможным создание хорошо оформленных документов.
Однако создавать HTML-документы можно не только в текстовых редакторах, но и в любой программе MS Office. Создавать HTML-файлы с помощью программ этого пакета стало так же просто, как и другие документы. Более того, в состав пакета входит программа MS Front Page, позволяющая с помощью WYSIWYG-интерфейса достаточно легко создавать Web-страницы, выглядеть не хуже тех, что размещены на профессиональных Web-узлах.
Написание сценариев на языке VBScript
Добавление сценариев к Web-страницы позволяет расширить функциональные возможности клиентских программ за счет обработки и проверки данных перед передачей их на сервер, а также за счет создания динамических Web-документов. Важным моментом при применении сценариев является возвращение к концепции разработки программ, управляемых событиями. Вместо того чтобы каждый раз обращаться к серверу с ответом, сценарий позволяет Web-странице немедленно реагировать на действия пользователя.
По сути, VBScript является упрощенной версией (подмножеством) языка Visual Basic. Он реализуется как интерпретатор, который встраивается в браузер. Web-броузер, имея такой интерпретатор, может запускать размещены на Web-странице мини-программы.
Поскольку VBScript является языком программирования без всякого среды, то возникает вопрос: откуда взять элементы, с которыми работать сценарии? Для этого могут использоваться, во-первых, встроенные элементы управления HTML (вставлены с помощью тега <Input>), во-вторых (и это придает значительно больших возможностей), элементы управления ActiveX. Существует много элементов управления ActiveX, созданных фирмой Microsoft и другими поставщиками. Вставляется элемент ActiveX между тегами <OBJECT> и </ OBJECT>. Для облегчения вставки элементов ActiveX можно использовать текстовый редактор Web-страниц ActiveX Control Pad. Он также помогает изменять внешний вид элементов и расположение их, писать сценарии. Несмотря на то, что программу Control Pad не включен в комплект MS Office, ее можно получить на Web-сервере Microsoft по адресу ttp: / / www.microsoft.com / workshop / author / cpad.
Сценарии VBScript могут размещается в любом месте Web-страницы, но чаще всего их вставляют в раздел <HEAD> или в конце HTML-документа. Начинаются они с тега <SCRIPT> и завершаются тегом </ SCRIPT>. Между тегами <SCRIPT> и </ SCRIPT> располагаются теги комментария HTML, внутри которых размещается код VBScript. Наличие тегов комментария предотвращает отражению текста сценария на HTML-странице броузерами, которые не распознают тег <SCRIPT>. Этот тег имеет обязательный атрибут LANGUAGE, определяющий интерпретатор сценария, который необходимо использовать для выполнения заключенного в тег кода. В одной Web-странице может быть несколько сценариев, причем любой из них может быть написан как на VBScript, так и на JavaScript. В следующем примере функция ScriptEngine (это стандартная функция VBScript) используется для идентификации типа интерпретатора сценария, а так называемую строку пользовательского агента - для идентификации броузера:
<HEAD>
<SCRIPT Language = "VBScript">
<! -
alert ScriptEngine
->
</ SCRIPT>
<SCRIPT Language = "JavaScript">
<! -
alert (window.navigator.userAgent);
->
</ SCRIPT>
<TITLE> Страница со сценариями </ TITLE>
</ HEAD>
Вид у строки пользовательского агента не очень легкий для чтения, но если знать, что именно нужно искать, то можно найти полезную информацию. Так, если эта строка имеет вид: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt), то MSIE 5.0 указывает на то, что используется пятая версия MS Internet Explorer.
Оператор alert (метод объекта Window броузера MS Internet Explorer) является аналогом оператора MsgBox в Visual Basic. При использовании только VBScript приведенный выше фрагмент кода можно записать так:
<HEAD>
<SCRIPT Language = "VBScript">
<! -
MsgBox ScriptEngine
MsgBox window.navigator.userAgent
->
</ SCRIPT>
<TITLE> Страница со сценариями </ TITLE>
</ HEAD>
Стоит обратят внимание на то, что код приведенных фрагментов расположен непосредственно в тексте или на HTML-странице без представления его в виде процедуры или функции. За такого расположения он будет выполняться в момент отображения страницы браузером. Такую технику называют немедленным исполнением (immediate execution). Значительно чаще код размещается в сценарии в виде подпрограмм обработки определенных событий. Так, заготовки обработчиков события открытия страницы в Internet Explorer и события нажатия кнопки с именем cmdCommand1 иметь следующий вид:
<SCRIPT Language = "VBScript">
<! -
Sub Window_OnLoad ()
End Sub
Sub cmdCommand_OnClick ()
End Sub
->
</ SCRIPT>
Для привязывания процедур обработки событий к HTML-элементов могут использоваться и другие способы. Ниже приведено определение элемента button (кнопки), в котором также указано имя процедуры Product, которая вызывается при нажатии кнопки:
<INPUT Type "Button" Name = "cmdProduct" Value = "Продукт"
OnClick = "Product">
Написать процедуру обработки события для элемента можно также с помощью конструкции FOR = "объект" EVENT = "имя события", который включается в тег <SCRIPT>:
<SCRIPT FOR = "cmdConnand2" EVENT = "OnClick" Language = "VBScript">
<! -
MsgBox "Пример использования конструкции FOR = объект"
->
</ SCRIPT>
И наконец, еще один способ привязать код обработки события к элементу - это написать его непосредственно в определении объекта:
<INPUT Language = "VBScript" Type "Button" Value = "OK" OnClick =
"MsgBox" Еще один пример использования привязки "& _" процедуры обработки события к элементу FOR = объект "">
Обратите внимание на то, что в данном случае весь код берется в кавычки, в результате чего кавычки, используемые в тексте кода, заменяются символами ".
Одной из существенных отличий языка VBScript от Visual Basic и VBА является то, что она поддерживает только один тип переменных - вариантный (Variant), который предназначается для хранения информации различного типа. Это облегчает при условии, что все делается корректно.
Если переменная объявлена в процедуре (переменная уровня процедуры), то ее видимость ограничивается лишь этой процедурой и имеет время «жизни», который начинается при вызове процедуры и завершается по окончании выполнения ее.
В отличие от переменных уровня процедур или локальных переменных, переменная, объявлена в теге <SCRIPT> вне процедуры, является глобальной переменной и имеет видимость на уровне сценария (ее можно использовать по всему коде, который находится по объявлением переменной). Глобальные переменные существуют с момента объявления их броузером и завершают свое существование, когда броузер выгружает страницу, в которой они объявлены.
После самого VBScript компоненты ActiveX, вероятно, являются наиболее важными для разработки программ на VBScript. Это программные компоненты с определенной функциональностью, которые можно просто вставлять в Web-страницы или формы Visual Basic. Как уже отмечалось, компоненты ActiveX вставляются в HTML-файлы с помощью тегов <OBJECT> и </ OBJECT>. Эти теги используются не только для внедрения ActiveX-объектов, но и апплетов Java и даже изображений. Как и все сложные HTML-теги тег OBJECT имеет значительный набор различных атрибутов. С их помощью компонент загружается и получает нужные значения свойств:
• Align - определяет способ размещения объекта на Web-странице;
• Border - определяет толщину рамки вокруг объекта;
• Classid - при добавлении в систему компонента ActiveX информация о нем должна быть занесена в реестр Windows. При этом ему присваивается уникальный идентификатор (global unique identifiler, GUID), который представляет собой код из букв и цифр, однозначно идентифицирует компонент ActiveX среди других. Как определено в модели СОМ, этот идентификатор используется для создания экземпляра ActiveX-компонента соответствующего класса. В случае, когда для данного атрибута не находится подходящего GUID в реестре Windows, для загрузки, проверки и установки компонента используется сервис загрузки по Internet (Internet Download Service);
• CodeBase - информация (т.е. URL), по которой броузер может найти и скачать компонент, если его не установлен в системе. Если вашу Web-страницу откроет пользователь, у которого не установлено нужный компонент ActiveX, то на Web-странице вместо объекта будет выведена красный крест. Если же указать местоположение компонента в атрибуте CodeBase, броузер пользователя автоматически его загрузит. Поэтому при включении компонента ActiveX в Web-страницу необходимо задать значение и этого атрибута. Если компонент находится в одной папке с Web-страницей, можно указывать относительную ссылку на него, просто вводя имя файла компонента (с расширением);
• Codetype - используется для проверки совместимости браузера с объектом, который у него загружается;
• Data - применяется для определения файла, который содержит необходимую для объекта информацию;
• Declare - указывает, что необходимо, не создавая экземпляр объекта, объявить только его класс в контексте страницы. Это свойство используется при последующем создании в документе перекрестных ссылок на объект или при применении объекта в качестве параметра для другого объекта в VBScript;
• Height - применяется для определения высоты объекта при его отображении на Web-странице;
• Hspace - определяет размеры отступов справа и слева от границы видимой области объекта;
• ID - определяет имя объекта, которое будет использоваться при обращении к нему из сценария;
• Name - если объект находится в блоке <Form> ... </ Form>, то при наличии этого атрибута он будет передаваться на сервер с применением определенного для данной формы метода. Используя этот атрибут в формах вместо элементов управления HTML можно использовать элементы управления ActiveX;
• Shapes - задает определенные области внедренного объекта как гиперссылки;
• Standby - определяет текст, который будет появляться на Web-странице при загрузке объекта;
• Type - задает тип кодирования информации;
• Vspace - задает размеры отступов от верхней и нижней границы области отображения объекта;
• Width - задает ширину объекта при его отображении на Web-странице.
Окончательное обеспечения компонента данными происходит через тег <PARAM>, что содержит NAME и VALUE, с помощью которых задаются начальные значения свойств данного компонента, когда он впервые создается на Web-странице. После того как начальные значения установлено, значения свойств легко изменить при исполнении по программному тексту сценария.
В следующем фрагменте программы с помощью тегов <PARAM> форматируется текст в элементе управления Microsoft Label:
<OBJECT ID = "Label1" WIDTH = 127 HEIGHT = 24
CLASSID = "CLSID: 978C9E23-D4B0-11CE-BF2D-00AA003F40D0">
<PARAM NAME="ForeColor" VALUE="255">
<PARAM NAME="Caption" VALUE="Призвище">
<PARAM NAME="Size" VALUE="3351;635">
<PARAM NAME="FontName" VALUE="Times New Roman">
<PARAM NAME="FontCharSet" VALUE="204">
<PARAM NAME="FontPitchAndFamily" VALUE="2">
<PARAM NAME="FontWeight" VALUE="0">
</ OBJECT>
Объектная модель Internet Explorer
Microsoft Internet Explorer предоставляет в распоряжение пользователя расширенную объектную модель, благодаря которой из кода сценария доступным становится все, что видно в броузере. К наиболее часто используемым объектам относятся объекты Window, Document, Form и Frame.
На высшем уровне иерархии находится объект Window, определяющий окно Internet Explorer и содержит все остальные объекты иерархии.
Чаще всего используются такие его свойства:
• Name - возвращает имя текущего окна, если такое определенное;
• Parent - возвращает объект Window, которое является родительским для данного окна;
• Self - возвращает текущий объект Window. Может использоваться аналогично ключевому слову Me в Visual Basic, который применяется к экземплярам класса и форм;
• Top - возвращает объект Window самого верхнего уровня (окно, содержащее другие фреймы в броузере);
• Status - устанавливает или возвращает текст, находящийся в нижней левой части строки состояния. Например:
Window.Status = "Здесь есть сообщение"
Поскольку объект Window находится на самом верхнем уровне иерархии, в случаях, когда он находится в области видимости, к нему можно обращаться без указания названия объекта:
Status = «Здесь есть сообщение»
Чаще всего используются такие методы объекта Window:
• Alert - отображает простое окно с предупреждением и кнопкой ОК;
• Confirm - отображает окно сообщения с кнопками ОК и Cancel;
• Prompt - предлагает пользователю ввести информацию. Аналогично функции InputBox в Visual Basic;
• Open - создает новое окно (экземпляр MS Internet Explorer) и возвращает ссылку на него;
• Close - закрывает окно;
• SetTimeout - устанавливает таймер (в миллисекундах) для вызова процедуры и возвращает идентификатор созданного таймера. Например, если нужно запустить функцию, связанную с кнопкой cmdSubmit, через одну секунду после загрузки HTML-документа, то в любое место между тегами <Script> (но вне определения процедуры) нужно включить такой код:
<SCRIPT LANGUAGE = VBScript>
<! -
x = SetTimeout ("cmdSubmit_OnClick ()", 1000)
->
</ SCRIPT>
• ClearTimeout - сбрасывает значение таймера с заданным идентификатором. Например:
<SCRIPT LANGUAGE = VBScript>
<! -
ClearTimeout x
->
</ SCRIPT>
• Navigate - загружает в объект Window заданный URL. Например, чтобы запросить у пользователя новый URL, а затем перейти по нему, можно воспользоваться таким кодом:
<SCRIPT LANGUAGE = VBScript>
<! -
x = prompt ()
Navigate x
->
</ SCRIPT>
Скачать новый документ HTML можно и с помощью свойства Location. Так, в приведенном примере вместо команды Navigate x можно было применить команду Location x.
К событиям объекта Window, которые зачастую обрабатываются, принадлежат OnLoad и OnUnLoad:
• OnLoad - возникает при открытии страницы после завершения операции обработки содержимого окна;
• OnUnLoad - возникает при закрытии страницы (при выгрузке содержимого окна).
Помимо обычного способа определения обработчиков этих событий:
Sub Window_OnLoad ()
End Sub Sub Window_OnLoad ()
End Sub
оба обработчика могут записываться как обработчики события элемента <BODY>:
<BODY LANGUAGE=VBScript OnLoad = "назва процедури" OnUnLoad = "назва процедури">
В следующем листинга показано, как с помощью события OnLoad, свойства Status и метода SetTimeout создается текстовая строка, которая перемещается по строке состояния Web-страницы:
<HTML>
<HEAD>
<TITLE> Панель состояния </ TITLE>
<SCRIPT Language="VBScript">
<! -
Public strMessage
Public strMessageBegin
Public intTimeout
Public intCountSpace
Sub Window_OnLoad ()
strMessageBegin = Space (130) & "Перемещение строки на панели состояния"
strMessage = strMessageBegin
intTimeout = Window.SetTimeout ("Scroll", 80)
End Sub 'Window_OnLoad
Sub Scroll ()
strMessage = Mid (strMessage, 2)
If strMessage = "" Then strMessage = strMessageBegin
Window.Status = strMessage
intTimer = window.SetTimeout ("Scroll", 80)
End Sub 'Scroll
->
</ SCRIPT>
</ HEAD>
<BODY>
<H1> Обратите внимание на текст в строке состояния </ H1>
</ BODY>
</ HTML>
Объект Document представляет собой документ, загруженный в данный момент в объект Window. Он содержит все формы, элементы, ссылки, картинки и компоненты ActiveX, которые есть на странице, и предоставляет доступ ко всем аспектам документа - от цвета фона до каждого конкретного тега в документе. Следует отметить, что в иерархии объектов сценарии связаны с объектом Window, а не с объектом Document. Поэтому при работе со свойствами и методами объекта Document этот объект следует указывать явно. В следующем примере демонстрируется возможность изменения цвета Web-страницы путем присвоения нового значения свойства bgColor объекта Document:
<HTML>
<HEAD>
<TITLE> Изменение цвета страницы </ TITLE>
<SCRIPT Language="VBScript">
<! -
Dim n
Sub ChColor
If n = 1 Then
Document.bgColor = "White"
n = 0
Else
Document.bgColor = "Blue"
n = 1
End If
End Sub
->
</ SCRIPT>
</ HEAD>
<BODY>
<FORM>
<INPUT Type = «Button» Value = "Змина кольору" OnClock = "ChColor">
</ FORM>
</ BODY>
</ HTML>
Цвет можно представлять и в виде шестнадцатеричных цифр. Первые две цифры представляют красную составляющую, две последующие - зеленую, а две последние - синюю. Черный цвет кодируется числом 000000, а белый - FFFFFF. Цифровое представление позволяет создавать эффекты, связанные с постепенным изменением цвета Web-страницы. Изменять цвет достаточно просто, но надо быть уверенным, что свойство bgColor корректно сформатирована. Для корректного форматирования ее можно производить Hex языка VBScript. Аргументом этой функции является число, а значением, которое она возвращает, - текстовое представление его шестнадцатеричного представления. Например, нужно прочитать существующий цвет, а затем сменить его на белый. Это можно сделать так:
Dim ColorPage
ColorPage = Document.bgColor
ColorPage = & HFFFFFF
Document.bgColor = Hex (ColorPage)
Для получения эффекта освещение - постепенного изменения цвета от черного до белого, нужно просто увеличивать значение цвета до тех пор, пока фон не станет абсолютно белым. Вот как выглядит код, что усиливает яркость фона:
ColorPage = ColorPage + & H111111
Document.bgColor = Hex (ColorPage)
Для того чтобы выполнять код такого увеличения яркости через одинаковые интервалы, можно применить метод SetTimeout. Полный HTML-текст такой Web-страницы может выглядеть так:
<HTML>
<HEAD>
<TITLE> Освещение </ TITLE>
<SCRIPT Language="vbs">
<! -
'Цветные константы:
Const conColorStart = & H0
Const conColorStep = & H111111
Const conColorEnd = & HFFFFFF
Const conTimerStep = 100
Public ColorPage
Sub Window_OnLoad ()
'Инициирование цвета фона:
ColorPage = conColorStart
Document.BGColor = Hex (ColorPage)
'Вызов программы через указанный интервал времени (миллисекунды):
intTimeout = Window.SetTimeout ("ColorChange", conTimerStep)
End Sub 'Window_OnLoad ()
Sub ColorChange ()
ColorPage = ColorPage + conColorStep
Document.BGColor = Hex (ColorPage)
If ColorPage <conColorEnd Then
intTimeout = Window.SetTimeout ("ColorChange", conTimerStep)
End If
End Sub 'ColorChange ()
->
</ SCRIPT>
</ HEAD>
<BODY>
<CENTER> <H1> Посетите мою Web-страницу </ H1> </ CENTER>
</ BODY>
</ HTML>
Интересные методы объекта Document? это методы Write и Writeln. Они могут использоваться для вставки в Web-страницу нового текста. Write записывает заданный строчку в то место документа, где расположен текст сценария. Например, если нужно вывести дату последнего редактирования документа, в сценарий нужно вставить такой код:
<SCRIPT Language = "VBScript">
<! -
Document.Write "Этот документ последний раз редактировалось:"
Document.Write Document.LastModified
->
</ SCRIPT>
В этом фрагменте используется свойство документа LastModified, которая возвращает дату последнего его обновления.
Метод Writeln аналогично методу Write записывает текстовую строку в документ, но в конец строки добавляет символ новой строки. Существенно, что этот символ, записанный в HTML-документ, игнорируется, если он не помещается между тегами переформатирования <PRE> и </ PRE> (без этих тегов VBScript не может различить метод Writeln, осуществляющий переход на новую строку, и метод Write, выводящий текст в текущую строку):
<SCRIPT Language = "VBScript">
<! -
Document.Writeln "<PRE> Этот документ последний раз редактировалось:"
Document.Write Document.LastModified & «</ PRE>»
->
</ SCRIPT>
В результате выполнения этого кода броузер отобразит две строки:
Этот документ последний раз редактировалось:
06/17/2001 21:04:38
Если использовать метод Write или опустить теги <PRE> и </ PRE>, получим этот текст в таком виде:
Этот документ последний раз редактировалось: 06/17/2001 21:04:38
Объект Document предоставляет доступ ко многим элементов страницы. Этот доступ обычно осуществляется с помощью набора (collection) - объекта особого вида с объектной модели Internet Explorer. Этот объект, как и аналогичный объект Visual Basic, представляет собой группу объектов одного класса и позволяет легко получить доступ к любому члену класса. Например, с помощью набора Forms можно обратиться к любой или ко всем формам документа и выполнить с ними определенные операции. Одной из таких операций является проверка правильности данных в полях и отправки формы. В свою очередь, к элементам управления можно обратиться за помощью, которая их содержит.
При ссылке из объекта Document на объект Form используют или имя формы или ее индекс в массиве форм. Поскольку объект Form содержит элементы формы и элементы ActiveX, с которыми взаимодействует пользователь, то в VBScript он используется чаще и существенно отличается от многих других объектов. Он отличается прежде всего тем, что большая часть его свойств и методов предоставляет, скорее, функциональные возможности, чем средства оформления Web-страницы. К «популярных» его свойствам относятся свойства Action и Metod. Установления их аналогичное присвоению соответствующих значений атрибутам Action и Metod тегу <Form>.
Свойство Action устанавливает или получает URL ресурса, для которого предназначены занесены в форму данные. Обычно это некоторая программа-фильтр, способный принимать и обрабатывать информацию, которая доставляется HTTP-методом.
Свойство Metod определяет способ пересылки данных из формы на сервер. Как и соответствующий атрибут тега <Form>, свойство Metod может принимать два значения: «POST» i «GET». Метод POST более эффективен при пересылке больших объемов данных. Но если необходимо предоставить пользователю возможность заносить результаты серверного процесса (например, результаты поиска) в папку Избранное, то следует использовать метод GET.
Свойство Taget определяет имя окна, в котором отображаются данные формы. Так, по нужд вывести форму с данными в другом экземпляре MS Internet Explorer можно задать соответствующее значение свойства Taget или одноименном HTML-атрибута формы.
Объект Form имеет только один метод Submit, передающего данные формы на сервер. Действие этого метода аналогична действия HTML-элемента INPUT со значением атрибута TYPE, равным «Submit». Он используется для пересылки содержимого формы на сервер.
Событие OnSubmit объекта Form позволяет запустить программу, которая должна выполняться перед отправкой формы.
В следующем фрагменте HTML-кода делается проверка правильности заполнения поля для ввода даты на клиентской стороне (здесь проверяется только синтаксическая корректность, однако ее легко можно дополнить и проверкой содержательной корректности). Если дата набрано синтаксически некорректно (для этой проверки используется функция IsDate), то после нажатия кнопки cmdValidate выводится соответствующее сообщение и пользователь должен ее откорректировать. Если дата набрано синтаксически корректно, то форма frmDate отсылается на сервер:
<HEAD>
<SCRIPT LANGUAGE=vbscript>
<! -
Sub cmdValidate_OnClick ()
If (IsDate (Document.frmDate.txtDate.Value)) then 'проверка даты
Document.frmDate.Submit 'отсылки формы на сервер
else
MsgBox "Ошибочная дата"
end if
End Sub
->
</ SCRIPT>
</ HEAD>
<BODY>
<FORM Name = "frmDate">
. . .
Дата: <INPUT Name = "txtDate"> <BR>
<INPUT Name = "cmdValidate" Type = "Button" Value = "Видислати">
. . .
</ FORM>
</ BODY>
Окно Internet Explorer может состоять из нескольких независимых фреймов (кадров). Они применяются для размещения HTML-файлов или объектов, расположенных по разным URL. Благодаря им на странице можно одновременно разместить несколько объектов и HTML-документов. Полный набор кадров сохраняется в массиве и вызывается с помощью свойства Frames. К элементам набора Frames можно обращаться как с помощью числовых индексов (первый элемент набора имеет нулевой индекс), так и с помощью имен, если эти имена им предоставлено. В последнем случае необходимо, чтобы все эти имена были уникальными, иначе набор Frames вернет только первое окно с заданным именем. Приведенный ниже фрагмент HTML-кода определяет набор фреймов и задает их имена:
<HTML>
<HEAD>
<TITLE> Набор из трех фреймов </ TITLE>
</ HEAD>
<FRAMESET Cols = "27%, *»>
<FRAME Name = "LeftFr" Scrolling = "Auto">
<FRAMESET Rows = "*, 75%">
<FRAME Name = "TopFr" Scrolling = "Auto">
<FRAME Name = "BottomFr" Scrolling = "Auto">
</ FRAMESET>
</ FRAMESET>
<NOFRAMES>
<BODY BGColor = "FFFFFF">
Ваша программа не поддерживает фреймы
</ BODY>
</ NOFRAMES>
</ FORM>
</ HTML>
Тег <FRAMESET> содержит Cols, Rows, Border, FrameBorder, BorderColor.
Первый и второй из этих атрибутов - взаимоисключающие. Colsрозмищуе фреймы по горизонтали и задает ширину каждого из них, а Rows размещает фреймы по вертикали и задает высоту каждого из них. Ширину и высоту фреймов можно указывать как в пикселях, так и в процентном отношении к размеру страницы. Символ * означает, что соответствующему фрейма предоставляется та часть страницы, которая остается после размещения других кадров.
Атрибут FrameBorder определяет наличие или отсутствие рамок между фреймами (он может иметь значение «Yes» или «No»), атрибут Border задает их размер (в пикселях), а атрибут BorderColor - их цвет.
Тег <FRAME> характеризует конкретный кадр в наборе фреймов. Его атрибут Src определяет URL страницы, которое отображается в данном кадре; Name - имя фрейма, которое может быть использовано в сценарии; MarginWidth - ширину левого и правого полей фрейма (в пикселях); MarginHeight - высоту верхнего и нижнего полей (в пикселях ; Scrolling - способ создания полос прокрутки (если задано значение «No», полосы не создаются, при значении «Yes» они создаются обязательно, а при значении «Auto» они появляются лишь в том случае, если содержимое файла при отображении не может разместиться полностью).
Теги <NOFRAME> </ NOFRAME> предназначаются для размещения данных, должны отражаться броузерами, которые не могут обрабатывать фреймы (эти данные игнорируются броузерами, которые могут обрабатывать фреймы).
Начиная с версии Internet Explorer 4.0 Microsoft предоставила возможность использовать динамический HTML, который позволяет с помощью сценариев программно изменять теги. Это достигается за счет того, что в динамическом HTML определяется набор событий, которые можно ассоциировать с тегами HTML, распространяя таким образом характерную для VBScript концепцию подействует-управляемого программирования на все элементы Web-страницы. Ключевым моментом этой концепции является то, что каждый тег документа может рассматриваться как отдельный объект со своими свойствами и событиями, которые доступны в течение всего периода существования Web-страницы. Это позволяет изменять содержимое HTML-страницы и после закрытия потока данных.
Для того чтобы к тегов-объектов можно было обращаться, им необходимо присвоить уникальные имена. Это делается с помощью атрибута ID, как показано в следующем фрагменте:
<FONT ID = "F1">
После оказания тегу имени в VBScript можно писать обработчики событий, которые могут происходить с этим тегом. Чаще всего используются такие известные события, как Click, DblClick и KeyPress (щелчок, двойной щелчок и Нажатие клавиши). Часто используются события OnMouserOver и OnMouserOut. Первая происходит, когда курсор мыши появляется над участком текста, находящегося внутри соответствующего тега, а вторая - когда курсор мыши покидает ее. В следующем примере обрабатывается событие нажатия левой кнопки мыши над определенными участками текста HTML-страницы и изменяется формат отображения этого текста:
<HTML>
<HEAD>
<TITLE> Динамический HTML </ TITLE>
<SCRIPT LANGUAGE = vbscript>
<! -
Sub Document_OnClick ()
Dim oEl
set oEl = window.event.srcElement
If oEl.ID = "FONT1" then
If oEl.Color = "# ff0000" Then
oEl.Color = "Blue"
oEl.Size = "3"
Else
oEl.Color = "Red"
oEl.Size = "7"
end if
ElseIf oEl.ID = "FONT2" Then
MsgBox "Это приводит лишь к появлению этого сообщения."
end if
End Sub
->
</ SCRIPT>
</ HEAD>
<BODY>
<P> <FONT ID = "FONT1"> Щелкните здесь левой кнопкой мыши. Затем
еще и еще раз ...</ FONT> </ P>
<HR Size = 2 Width = 100 %>
<P> <CENTER>
<FONT ID = "FONT2" Size = "5"> случае. </ FONT> </ CENTER> </ P>
</ BODY>
</ HTML>
Другие материалы по теме:
- Информационная модель- Классификация case-средств
- Технология intranet
- Разработка программного продукта. Этапы проектирования и построение модели
- Интегрированная программная среда поддержки дистанционного обучения «МатЛог»
