Плагин 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.