Выполнить функцию после получения сообщения «XHR закончила загрузку» - PullRequest
0 голосов
/ 04 июля 2019

Вопрос Нуб. Я правильно понял? «XHR закончила загрузку» отображается в консоли после выполнения XML-запроса HttpRequest, верно? Поэтому, если я хочу выполнить функцию после выполнения XML-запроса HttpRequest, я должен иметь возможность использовать .ajaxComplete (), как в

$( document ).ajaxComplete(function(){
    console.log("complete");
});

То есть, когда выполняется запрос XML HttpRequest, в консоли должно появиться «complete»? Я пробовал это с .ajaxComplete, .ajaxSuccess и .ajaxStop, но не получил результата.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Так что в любое время выполняется запрос HttpRequest XML

Нет.Это jQuery-метод , который применяется только к jQuery-запросам ajax (например, сделанным с jQuery.ajax или jQuery.post).

В этой демонстрации вы можете увидеть, что вызов ajaxComplete вызывается только один раз.

const url = 'https://dog.ceo/api/breeds/image/random';

$(document).ajaxComplete(function() {
  console.log("ajaxCompleteCalled");
});

$.ajax(url).then(data => console.log("jQuery ajax done"));

fetch(url).then(response => console.log("Fetch ajax done"));

const x = new XMLHttpRequest();
x.open("GET", url);
x.addEventListener("load", e => console.log("XHR ajax done"));
x.send();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Не существует эквивалента для API, встроенных в браузеры (XMLHttpRequest или fetch).Напишите вместо них функцию-обертку.

0 голосов
/ 04 июля 2019

XML HttpRequest не имеет обратного вызова под названием ajaxComplete ();

Вы можете проверить документацию XML HttpRequest здесь https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...