Ноябрь 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 функцию, которая вызывается при возникновении ошибки
- Необязательные контекстные параметры. Эти данные просто вернутся обратно по окончании работы серверного метода.
продолжение следует...
Разместил:
Автор: