Ноябрь 2, 2005
Remote Scripting - удаленное исполнение скрипта (Часть 6)
Как и при синхронном вызове, асинхронный вызов создает объект call, содержащий результат работы серверного метода и дополнительную статусную информацию.
При асинхронном вызове объект call передается в callback функцию в качестве параметра. Следовательно, вы можете проверить статус вызова и получить результат работы метода.
Так как при асинхронном вызове необходимо передать ссылку на callback функцию, то используется только JavaScript.
Для вызова серверного метода асинхронно:
Если вы создали page объект, то используется следующая форма вызова.
callObject = ASPObject.methodName(p1, p2[,...],
callbackFunction, errorCallbackFunction, context);
В противном случае используется RSExecute() функция:
callobject = RSExecute(url, methodName, p1, p2[,...],
callbackFunction, errorCallbackFunction, context)
Где:
callobject - имя call объекта;
ASPObject - объект ссылающийся на ASP страницу;
url - URL ASP страницы содержащей описание серверных методов. Эта страница должна находится на том же сервере, что и страница осуществляющая вызов;
methodName - имя метода, который вы хотите исполнить;
p1, p2 - параметры необходимые для вызова methodName метода. Параметра передаются по значению. В качестве параметров могут быть переданы значения простых типов.
callbackFunction - ссылка на JavaScript функцию в клиентском скрипте, которая будет вызвана, когда удаленный метод окончит работу. Т. к. вы передаете ссылку, не включайте имя функции в кавычки.
errorCallbackFunction - ссылка на необязательную JavaScript функцию в клиентском скрипте, которая будет вызвана, если при работе удаленного метода произойдет ошибка. Т. к. вы передаете ссылку, не включайте имя функции в кавычки.
context - необязательные параметры вызова, эти данные вернутся обратно.
Например, в следующем скрипте асинхронно вызывается серверный метод square. После работы метода вызывается функция showResults(). Имя операции передается как context-параметр.
<script language = "JavaScript" for = "btnSquare" event = "onclick">
rsMath = RSGetASPObject("../myPages/RSMath.asp");
number1 = txt1.value;
context = "squaring";
co = rsMath.square(number1,showResults,context);
</script>
Аналогичный пример с использованием RSExecute метода:
<script language = "JavaScript" for = "btnSquare" event = "onclick">
number1 = txt1.value;
context = "squaring";
co = RSExecute("RSmath.asp","square",number1,showResults,context);
</script>
продолжение следует...
Разместил:
Автор: