Использование объектов Deferred, возвращаемых функциями XHR

После запуска CherryPy и сохранения следующего ниже кода разметки в файле с именем foo.html в том же каталоге, где находится файл hello.py, все будет готово к испытаниям. Перейдите в броузере по адресу http://127.0.0.1:8080/foo.html, и страница foo.html должна загрузиться без какихлибо проблем:


Fun with Deferreds!



(body)
Check the Firebug console.
(/body)


После запуска этого примера вы должны увидеть в консоли Firebug следующий вывод:
xhrGet fired.


Waiting on callbacks or errbacks
Load response is: Hello
Executing the callback chain now...
Callback 1 says that the result is Hello
Callback 2 says that the result is Hello

Главный вывод, который следует из этого примера, заключается в том, что объект Deferred дает ясный, непротиворечивый интерфейс, позволяющий обрабатывать все ситуации, складывающиеся в результате работы функции xhrGet, – будь то успешное получение ответа на запросили ошибка, которую надо обработать.

Вы можете попробовать изменить значение предельного времени ожидания в вызове функции dojo.xhrGet так, чтобы это время оказалось меньше трех секунд, необходимых серверу для передачи ответа. В результате это приведет к появлению ошибки, и вы сможете увидеть, как запускается цепочка функций обработки ошибок. Эта цепочка запускается еще и тогда, когда чтото пошло не так как надо в одной из функций обратного вызова, поэтому вы можете попробовать внести в функцию обратного вызова программный код, генерирующий ошибку, чтобы увидеть, что перед вызовом цепочки функций обработки ошибок успевает отработать часть цепочки функций обратного вызова..



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур