È possibile interrompere la connessione se una chiamata asincrona richiede molto tempo a ricevere una risposta (ad esempio, a causa di un problema di rete), utilizzando setTimeout().
var xhr = new XMLHttpRequest ();
xhr.onreadystatechange = function () {
if (this.readyState == 4) {
// se si riceve una risposta si blocca il timeout
clearTimeout(timeout);
// fai qualcosa coi dati della response
. . .
}
}
// Impostazione Timeout
var timeout = setTimeout( function () {
xhr.abort(); // invocazione funzione di callback che interrompe la chiamata xhr
}, 60*1000); // timeout dopo un minuto
xhr.open('GET', url, true);
xhr.send();