2
我在嵌入式設備上使用XMLHttpRequest,該API提供API的非標準擴展,以便在請求完成後手動清理資源。我可以保證onreadystatechange最終總是會被調用readyState == 4嗎?
我可以假設,對於所有情況(成功或否則,例如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);