http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
Подход Internet Explorer | Книга AJAX
 

На ранней стадии разработки веб-служб Microsoft, стремясь возбудить у разработчиков интерес к этой технологии, создала и выпустила Web-service Behavior, программный компонент для Internet Explorer. Этот компонент позволяет переопределять функциональные возможности, свойства и методы элементов HTML или даже создавать новые. Пре-нмущество этого программного компонента состоит в том, что он по¬зволяет заключить всю необходимую функциональность в единствен¬ный файл, имеющий расширение . htc. Webservice Behavior никогда не оправдывал всех связанных с ним надежд, но он может оказаться очень полезным для веб-разработчиков. Скачать его можно по адресу nttp://msdn.microsoft.com/library/default.asp?url=/workshop/author/web-service/webservice.asp.
Этот файл вместе с другими файлами, имеющими отношение к данной главе, можно скачать с сайта vnm.wrox.com.
Добавить компоненты к элементам HTML можно разными способами. Самый простой из них - воспользоваться атрибутом style элемента. Чтобы добавить возможность работы с веб-службой в элемент , его надо описать так:

Здесь предполагается, что файл .htc находится в том же каталоге на сервере, что и исходная веб-страница.
Создадим новую версию тестового приложения и добавим выделенную строку прямо в элемент :

Далее определим метод performSpecif icOperation(), который заде ет новый компонент в своей работе. Он принимает три аргумента: метода и два операнда. Вот его программный код:
var iCallld = 0;
function performSpecificOperation(sMethod, s0p1, s0p2) {
var oServiceHandler = document.getElementByldC'divServiceHandler"); if (!oServiceHandler.Math) {
oServiceHandler.useService(SERVICE_URL + "?WSDL", "Math");
}
iCallld = oServiceHandler.Math.callService(handleResponseFromBehaviar„
sMethod, s0p1, s0p2);
}
Переменная iCallld инициализируется значением 0. Она не играет какой роли в тестовых испытаниях, однако может пригодиться длж го, чтобы отслеживать одновременное исполнение нескольких сов. Затем в переменной oServiceHandler сохраняется ссылка на эл , к которому присоединен компонент. Далее проверяется, и~ зовался ли присоединенный компонент, для чего выясняется н свойства Math. Если такое свойство не обнаружено, то выполняется стройка компонента, для чего ему передаются (через вызов ф useServiceQ) URL файла WSDL и идентификатор- имя веб-с Идентификатор необходим для того, чтобы позволить компоненту временно работать с несколькими веб-службами. После этого выз ся метод callService(), которому передается ссылка на функцию ного вызова (handleResponseFromBehavior()), имя метода и два аргум
По прибытии ответа будет вызвана функция обратного вызова пап
ResponseFromBehavior():
function handleResponseFromBehavior(oResult) {
var oResponseOutput = document.getElementByldC'txtResponse");
if (oResult.error)
{
var sErrorMessage = oResult.errorDetail.code
+ "\n" + oResult.errorDetail.string;
alert("0um6i + sErrorMessage
+ "дополнительная информация в области" + " сообщений внизу страницы."); oResponseOutput.value = oResult.errorDetail.raw.xml;
{
var oResultOutput = document.getElementByldC'txt.Result"); oResultOutput.value = oResult.value; oResponseOutput.value = oResult.raw.xml;
>
}
В функцию обратного вызова передается объект oResult, содержащий информацию о вызове. Если свойство error содержит ненулевое значе¬ние, отображается соответствующее сообщение об ошибке, в против-аом случае результат выполнения операции извлекается из свойства efiesult. value и отображается на странице.
Функции performSpecificOperation() и handleResponseFromBehavior() мож-жо разместить во внешнем файле JavaScript и подключить его к тесто¬вой странице с помощью элемента , как показано ниже:

Как видите, компонент доступа к веб-службе весьма прост в обраще¬нии. Вся работа выполняется им в фоновом режиме, и, хотя файл web-service, htc достаточно велик (51 Кбайт), он предоставляет очень удоб¬ные функциональные возможности.
Если вы захотите увидеть, как работает компонент webservice behavior, мо¬тете заглянуть в файл webservice. htc с помощью обычного текстового ре¬дактора. Однако имейте в виду, что компонент создавался вовсе не для целей обучения и содержит порядка 2300 строк кода JavaScript.