Плагин jQuery ajaxreadystate
Реализация AJAX в jQuery несколько ограничена, поскольку она не обеспечивает способа реагирования на события readystatechange
, которые срабатывают во время запроса AJAX. В документации по API jQuery.ajax
фактически говорится следующее.
Однако механизм
onreadystatechange
не предусмотрен, посколькуdone
,fail
,always
иstatusCode
охватывают все мыслимые требования.
Хотя это утверждение верно для большинства случаев использования, что, если вы хотите получить доступ к заголовкам ответа или коду состояния до завершения всего запроса или получить доступ к телу ответа во время его потоковой передачи?
Очевидно, jQuery не предоставляет эту функциональность из-за проблем с совместимостью браузеров, поэтому этот плагин добавляет эту дополнительную функциональность для браузеров, которые поддерживают эти функции (см. примечания по совместимости ниже).
Этот плагин работает путем добавления нового метода jQuery.ajaxreadystate
, который действует как оболочка для jQuery.ajax
, расширяя функциональность и обновляя объект jqXHR
для удаления ограничений и обновления свойств при изменении readyState
.
Вы используете jQuery.ajaxreadystate
так же, как и jQuery.ajax
, за исключением того, что у вас есть один дополнительный метод, который вы можете определить, — метод readystate
.
jQuery . ajaxreadystate ( {
readystate : function ( jqXHR , readyState ) {
}
} ) ;
Этот метод будет срабатывать каждый раз, когда запрос запускает событие readystatechange
, и будет передавать обновленный объект jqXHR
и текущий readyState
.
Вы можете скачать последнюю стабильную и мини-версию из раздела релизов этого репозитория. Альтернативно вы можете клонировать загрузку репозитория из менеджера пакетов.
###Полная поддержка
Следующие браузеры полностью поддерживаются.
###Частично поддерживается
Следующие браузеры поддерживаются частично из-за технических ограничений самого браузера. Отмечаются проблемы совместимости.
responseText
недоступен, пока readyState
не станет равным 4
.readystatechange
для readyState
3
.responseText
недоступен, пока readyState
не станет равным 4
.status
и statusText
не обновляются, пока readyState
не станет равным 4
.getAllResponseHeaders
и getResponseHeader
возвращают null
до тех пор, пока readyState
не станет равным 4
.readystate
запускается только для readyState
1
.responseText
недоступен, пока readyState
не станет равным 4
.status
и statusText
не обновляются, пока readyState
не станет равным 4
.getAllResponseHeaders
и getResponseHeader
возвращают null
до тех пор, пока readyState
не станет равным 4
.getAllResponseHeaders
и getResponseHeader
возвращают null
до тех пор, пока readyState
не станет равным 3
.getAllResponseHeaders
и getResponseHeader
возвращают null
до тех пор, пока readyState
не станет равным 3
.readystatechange
для readyState
3
.status
и statusText
не обновляются до тех пор, пока readyState
не станет равным 3
.readystatechange
для readyState
3
.status
и statusText
не обновляются до тех пор, пока readyState
не станет равным 3
.readystatechange
для readyState
3
в какой-то момент во время передачи.getAllResponseHeaders
и getResponseHeader
возвращают null
до тех пор, пока readyState
не станет равным 4
.Браузеры более старых версий, чем перечисленные, не тестировались, но могут частично или полностью поддерживаться.
Этот плагин совместим с jQuery 1.5+ и jQuery 2.0.0+.
Чтобы создать мини-сборку, запустите эту команду из корневого каталога этого репозитория.
$ npm run build
Если вы обнаружили ошибку или проблемы совместимости, не описанные выше, откройте заявку в разделе проблем для этого репозитория.
См. LICENSE.txt.
Если эта лицензия вам не подходит, свяжитесь со мной.
Если вы найдете мое программное обеспечение полезным, рассмотрите возможность сделать скромное пожертвование на моем веб-сайте alexomara.com.