Ноябрь 3, 2005

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

Функция showResults, которая является callback функций в предыдущем примере, может выглядеть следующим образом:

<script language = "JavaScript">
function showResults(co) {
typeOp = co.context;
rValue = co.return_value;
txt2.value = "Result of " + typeOp + "operation = " + rValue;
}
</script>

В данном случае callback функция служит для вывода результата работы операции. Функция демонстрирует, как вы можете использовать context свойство для определения того, какая операция арифметическая применялась.

Вы можете проверить состояние работы удаленного метода. При асинхронном вызове, можно проверить состояние работы серверного метода. Для этого используется свойства status объекта call Возможные значения свойства status:
-1 - произошла ошибка
0 - работа завершена
1 - в процессе (только для асинхронного вызова)

Асинхронный вызов можно прервать, для этого используется cancel() метод объекта call.

Обработка ошибок

При вызове удаленных серверных методов могут происходить разного рода ошибки: синтаксические ошибки, ошибки времени исполнения, ошибки при вызове методов. RS имеет механизмы оповещения о происходящих ошибках.

Реакция на ошибки немного различается при синхронном и асинхронном вызове. Если при синхронном вызове произошла ошибка, механизм обработки ошибок выбрасывает сообщение об ошибке в окно браузера. Текстом сообщения является message свойство call объекта. Если ошибка происходит при асинхронном вызове, то вы можете ее перехватить, определяя error callback функцию.

При асинхронном вызове передаете ссылку на error callback функцию в качестве параметра. Т. к. передается указатель на функцию, то при таком вызове можно использовать только JavaScript. Примеры с использованием объекта ссылающегося на серверную страницу и без:

callObject = ASPObject.methodName(p1, p2[,...], callbackFunction,
errorCallbackFunction, context)

callobject = RSExecute(url, methodName, p1, p2[,...], callbackFunction,
errorCallbackFunction, context)

При синхронном и асинхронном вызове вы можете получать информацию о происходящих ошибках через свойства call объекта. Если вы определяете error callback функцию, то call объект передается в качестве параметра как и в случае callback функции.

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

Разместил:

Автор:

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

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

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