Я использую XMLHttpRequest на встроенном устройстве, которое предоставляет нестандартное расширение API для ручной очистки ресурсов после завершения запроса.
Могу ли я предположить, что для всех случаев (успешных или иных, например, 404, сбой поиска DNS и т. Д.) Вызов метода send () в конечном итоге приведет к тому, что мой обработчик onreadstatechange будет вызываться с ReadyState == 4?
Или, другими словами, если предположить, что XHR этой реализации во всех остальных отношениях ведет себя аналогично стандартным браузерам, будет ли следующий код всегда вызывать метод destroy ()?
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
callback(xhr.responseText);
if (xhr.destroy) { // must call this to prevent memory leak
xhr.destroy();
}
}
};
xhr.open(method, url, true);
xhr.send(null);