Javascript.RU

Асинхронное программирование

Асинхронное программирование или Event-driven программирование - общее название для стиля программирования, при котором результат работы функции приходит не сразу после вызова, а когда-нибудь потом.

В Javascript такое - сплошь и рядом. На этом построен AJAX и javascript-анимация.

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

Поэтому люди изобрели некоторые полезные методы, облегчающие асинхронную жизнь.

  • Объект Deferred.

    Каждый, кто когда-либо использовал AJAX, знаком с асинхронным программированием. Это когда мы запускаем некий процесс (скажем, XMLHTTPRequest) и задаем функцию callback обработки результата.

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

    Один способ - добавлять каллбэки в параметры всех функций. Другой - использовать для управления асинхронностью отдельный объект. Назовем его Deferred.

    Такой объект есть, например, в библиотеке Mochikit и во фреймворке dojo. читать дальше »

  • Вложенные асинхронные вызовы. Объект Deferred в деталях.

    Объект Deferred инкапсулирует последовательность обработчиков для еще не существующего результата, чем сильно упрощает сложные AJAX-приложения. Он предоставляется различными фреймворками (Dojo Toolkit, Mochikit) и отдельными библиотечками (jsDeferred, Promises etc).

    С его помощью можно добавлять обработчики не в момент запуска метода (например, посылки запроса XMLHTTPRequest() , а в любой момент после этого. читать дальше »


Автор: Гость (не зарегистрирован), дата: 2 февраля, 2016 - 14:12
#permalink

как всё здорово! правда, ничего не понятно(


 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum