Ho un sito Web che fa un uso pesante di Ajax. Occasionalmente ho bisogno di caricare file di immagine di grandi dimensioni sulla pagina per l'utente. La mia domanda è, quando questi file di immagine di grandi dimensioni vengono scaricati, c'è un modo per fermarli se, per esempio, l'utente si allontana dalla pagina che mostra l'immagine? Grazie.Javascript: Annulla/interrompi richieste di immagini
risposta
Ho avuto lo stesso problema esatto, quando 'paging' rapidamente i risultati della ricerca degli utenti attraverso (Ajax) il browser stava ancora cercando di scaricare le immagini dei profili per ogni pagina, non solo quello attuale. Questo codice ha funzionato per me, ha invitato l'evento paging poco prima della nuova ricerca è stato eseguito:
//cancel image downloads
if(window.stop !== undefined)
{
window.stop();
}
else if(document.execCommand !== undefined)
{
document.execCommand("Stop", false);
}
In sostanza è come se facendo clic sul pulsante "Stop" sul browser.
Testato in IE, Firefox, Chrome, Opera e Safari
Grazie mille molto MyWhirledView. Sono stato alle prese con questo per giorni. – Alex
Purtroppo questo non funziona in safari :( – Alex
Questo * fa * funziona in Safari ... vedi il problema simile e risolvilo qui: http://stackoverflow.com/questions/3146200/stop-loading-of-images- on-a-hashchange-event-via-javascript-or-jquery –
Supponendo che si stia utilizzando ajax per caricare le immagini, è possibile interrompere la richiesta nell'evento window.onunload. Dichiarare una variabile globale per l'oggetto XMLHttpRequest che si sta utilizzando.
var xhr;
//if using the XMLHttpRequest object directly
//you may already be doing something like this
function getImage(...){
xhr = new XMLHttpRequest();
xhr.open(....);
}
se si utilizza jQuery, è possibile assegnare il valore di ritorno della chiamata $ .ajax() o $ .get per XHR variabile.
xhr = $.ajax(.....);
Gestire window.onunload e interrompere la richiesta.
window.onunload = function(){
xhr.abort();
}
Non sto usando ajax per caricare le immagini. Pensavo che l'impostazione src = '' avrebbe funzionato, ma non è così. Quello che sto cercando davvero è document.getElementById ('image'). StopLoading(); :) – frio80
La soluzione Poor Mans sarebbe quella di impostare semplicemente la proprietà SRC del tag di immagine su una stringa vuota, o puntare verso un widget.
modificare
visto il tuo commento, ha sorpreso non funziona con la modifica della proprietà SRC a vuoto ... provare a utilizzare un blank.gif o qualcosa del genere.
Se questo non dovesse funzionare, si può essere limitato da architettura del browser, il che significa che sei S.O.L.
Riassegnazione il tag SRC per un'immagine diversa non funziona in IE7, continua cercando di scaricare la prima immagine.
Qui è la messa a punto:
ho creato un gestore HTTP che è di tipo JPEG. Contiene codice che non termina mai l'esecuzione. Quindi someImage.src = myhandler.ashx rimarrà perennemente lì carico fino a quando scade.
Nel mezzo di questo, premere un altro pulsante che riassegna l'immagine in un piccolo file di immagine: someImage.src = small.jpg
La richiesta di myhandler.ashx non finisce, anche se abbiamo riassegnato lo src.
Inoltre se effettivamente elimina il someImage.parentNode.removeChild nodo (someImage) è ancora continua a cercare di scaricare myhandler.ashx
Testato con IE7 e monitorato con HTTP Guarda Pro.
Ho una sezione della nostra pagina che voglio che tutto il caricamento dell'immagine si fermi. Ho trovato per IE se vado al nodo genitore e metto innerHTML a "", interrompe tutte le richieste abbastanza Questo funziona solo per IE, Safari e Firefox continueranno a caricare le immagini in modo apparentemente non importa cosa (facendo clic sul pulsante di arresto non è adatto a me per altri motivi) –
come questo.
$(img).attr('src','');
- 1. JavaScript: come cambiare sorgente di immagini senza l'emissione di due richieste HTTP
- 2. libreria editor di immagini Javascript
- 3. richieste HTTP con Capture Javascript
- 4. JavaScript Precarica immagini
- 5. Utilizzo di python Richieste con pagine javascript
- 6. I cookie sono stati inviati con richieste di immagini?
- 7. Richieste di caricamento batch su Google Cloud Storage utilizzando javascript
- 8. Rileva 404 immagini utilizzando Javascript
- 9. Analisi di pagine PDF come immagini javascript
- 10. Utilizzo di javascript per stampare le immagini
- 11. Aggiunta di immagini all'html con javascript
- 12. Copia immagini javascript negli appunti
- 13. JavaScript: Le variabili globali dopo Ajax richieste
- 14. Difficoltà nell'invio di cookie con richieste di recupero in JavaScript
- 15. Finestra di dialogo Richieste Facebook: richieste di invio non riuscite
- 16. Recupera richieste GET con Javascript nella console di Firefox
- 17. Come sovrapporre le immagini in javascript?
- 18. ruota le immagini 3d utilizzando javascript
- 19. È possibile confrontare due immagini in Javascript?
- 20. Caricamento immagini in modo sincrono con javascript
- 21. Come precaricare le immagini senza Javascript?
- 22. Come nascondo le immagini spezzate in javascript?
- 23. Symfony2, dove mettere CSS, JavaScript, immagini
- 24. Come ascoltare i codici di stato di reindirizzamento 301/302 nelle richieste di immagini tra domini?
- 25. Ruby/Sinatra - serve file css, javascript o di immagini
- 26. libreria Javascript per il decodificatore di immagini QR
- 27. Usa javascript per ottenere un'immagine casuale dalle immagini di Google
- 28. HTML5 localStorage per risorse (fogli di stile, JavaScript, immagini ecc.)
- 29. Il visualizzatore di immagini Javascript non funziona in Internet Explorer
- 30. Come fare richieste HTTPS con serveride javascript usando Worklight?
State notando che il browser * non * sta annullando download quando ci si sposta da una pagina? Sono d'accordo che dovrebbe Potrei, tuttavia, anche facilmente immaginare che i diversi browser potrebbero avere un comportamento diverso. Purtroppo. – Bruce
Bene, questa è un'applicazione ajax, quindi non ho mai lasciato la pagina, ho provato a "lasciare" la pagina e con mia sorpresa l'immagine NON si interrompe. Wow. Non me l'aspettavo. Sto usando FF 3.0.10/IE8 e Fiddler per guardare il traffico. – frio80