Ноябрь 1, 2005

Remote Scripting - удаленное исполнение скрипта (Часть 5)

Для вызова серверного метода синхронно:

Если вы создали page объект, то вызов выглядит следующим образом:

JavaScript:
callObject = ASPObject.methodName(p1, p2[,...])
VBScript:
set callObject = ASPObject.methodName(p1, p2[,...])

Если page объект создан не был, используется RSExecute() функция и вызов выглядит так:

JavaScript:
callobject = RSExecute(url, methodName, p1, p2[,...])
VBScript:
set callobject = RSExecute(url, methodName, p1, p2[,...])

Где:
сallObject - имя call объекта;
ASPObject - объект ссылающийся на ASP страницу.
url - URL ASP страницы содержащей описание серверных методов. Эта страница должна находится на том же сервере, что и страница осуществляющая вызов.
methodName - имя метода, который вы хотите исполнить.
p1, p2 - параметры необходимые для вызова methodName метода. Параметра передаются по значению. В качестве параметров могут быть переданы значения простых типов.

В качестве примера рассмотрим скрипт в котором при нажатии на кнопку btnAdd вызывается серверный метод Add. В качестве параметров передается содержимое полей ввода txt1 и txt2, а результат выводится в текстовом поле txt3:

<script language = "JavaScript" for = "btnAdd" event="onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp");
number1 = txt1.value;
number2 = txt2.value;
co = rsMath.Add(number1,number2);
txt3.value = "The sum is " + co.return_value;
</script>

Аналогичный вызов, но без использования page объекта:

<script language = "JavaScript" for = "btnAdd" event="onclick">
number1 = txt1.value;
number2 = txt2.value;
co = RSExecute("RSmath.asp","add",number1,number2);
txt3.value = "The sum is " + co.return_value;
</script>

Как видно из второго примера для удаленного вызова используется функция RSExecute(). В качестве параметров передается URL ASP страницы, имя серверного метода и параметры.

Асинхронный вызов

Можно вызывать удаленные методы асинхронно - клиентский скрипт продолжает работать пока серверный метод исполняется и следовательно страница остается доступной для пользователя.

Вызов серверного метода асинхронно схож с синхронным вызовом, за исключением появления дополнительных параметров при вызове:
- Ссылка на callback функцию в клиентском скрипте, которая вызывается при успешном завершении работы серверного метода.
- Ссылка на error callback функцию, которая вызывается при возникновении ошибки
- Необязательные контекстные параметры. Эти данные просто вернутся обратно по окончании работы серверного метода.

продолжение следует...

Разместил:

Автор:

Ваш комментарий

Обсудить на форуме?

Подумайте, прежде чем высказать своё мнение. Постарайтесь сделать свой комментарий полезным для других. Не используйте ненормативную лексику. Пользователи, пишущие "от нечего делать" бессмысленные наборы символов, будут блокироваться навсегда.