Tengo un sitio web que hace un uso intensivo de Ajax. Ocasionalmente, necesito cargar archivos de imágenes grandes en la página para el usuario. Mi pregunta es, cuando estos archivos de imágenes grandes se están descargando, ¿hay alguna forma de detenerlos si, por ejemplo, el usuario navega fuera de la página que muestra la imagen? Gracias.Javascript: Cancelar/Detener solicitudes de imagen
Respuesta
que tenían el mismo problema exacto, cuando rápidamente los resultados de búsqueda de los usuarios a través paginados '(Ajax) el navegador todavía estaba tratando de descargar imágenes de perfil para cada página y no sólo la actual. Este código funcionó para mí, llamado en el caso de paginación justo antes de la nueva búsqueda se llevó a cabo:
//cancel image downloads
if(window.stop !== undefined)
{
window.stop();
}
else if(document.execCommand !== undefined)
{
document.execCommand("Stop", false);
}
Esencialmente es como hacer clic en el botón "Stop" en el navegador.
Probado en IE, Firefox, Chrome, Opera y Safari
Gracias taaaaan mucho MyWhirledView. He estado lidiando con esto por días. – Alex
Lamentablemente esto no funciona en safari :( – Alex
Este * does * funciona en Safari ... ver el problema similar y corregirlo aquí: http://stackoverflow.com/questions/3146200/stop-loading-of-images- on-a-hashchange-event-via-javascript-or-jquery –
Suponiendo que está utilizando ajax para cargar las imágenes, puede simplemente cancelar la solicitud en el evento window.onunload. Declare una variable global para el objeto XMLHttpRequest que está utilizando.
var xhr;
//if using the XMLHttpRequest object directly
//you may already be doing something like this
function getImage(...){
xhr = new XMLHttpRequest();
xhr.open(....);
}
si se utiliza jQuery, podría asignar el valor devuelto por la llamada que .ajax $() o $ .get a XHR variable.
xhr = $.ajax(.....);
Manejar la ventana.desconectar y cancelar la solicitud.
window.onunload = function(){
xhr.abort();
}
No estoy usando ajax para cargar las imágenes. Pensé que configurar src = '' haría el truco pero no es así. Lo que realmente estoy buscando es un document.getElementById ('image'). StopLoading(); :) – frio80
La solución Mans pobres sería establecer simplemente la propiedad SRC de la etiqueta de imagen para una cadena vacía, o apuntar hacia un widget.
edición
vi tu comentario, sorprendió que no funciona con el cambio de la propiedad SRC para vaciar ... trate de usar un blank.gif o algo así.
Si eso no funciona, puede estar limitado por la arquitectura del navegador, lo que significa que usted es S.O.L.
La reasignación de la etiqueta SRC a una imagen diferente no funciona en IE7, continúa intentando descargar la primera imagen.
Aquí está la disposición:
creé un controlador HTTP que es de tipo JPEG. Contiene código que nunca termina de ejecutarse. Entonces, algún Image.src = myhandler.ashx se sentará allí cargando hasta agotarlo.
En medio de esto, pulse otro botón que vuelve a asignar la imagen a un archivo de imagen pequeña: someImage.src = small.jpg
La solicitud de myhandler.ashx no termina, a pesar de que hemos reasignado el src.
Por otra parte, si en realidad se elimina el nodo someImage.parentNode.removeChild (someImage) está todavía sigue tratando de descargar myhandler.ashx
Probado con IE7 y monitoreado con el reloj HTTP Pro.
Tengo una sección de nuestra página que quiero que pare toda la carga de imágenes. He encontrado para IE si voy al nodo padre y configuro innerHTML en "", aborta todas las solicitudes bastante muy bien. Esto solo funciona para IE, Safari y Firefox continuarán cargando las imágenes aparentemente sin importar nada (haciendo clic en el botón de detención de forma programada no es adecuado para mí por otros motivos) –
les gusta esto.
$(img).attr('src','');
- 1. javascript: cancelar todo tipo de solicitudes
- 2. Capturar solicitudes HTTP con Javascript
- 3. Cargando Javascript: Solicitudes HTTP -v- Carga asincrónica
- 4. Javascript imagen Pan/Zoom
- 5. (Javascript) Convertir byte [] a imagen
- 6. Unfailing Javascript Imagen de previsualización de
- 7. Extensión de archivo de imagen JavaScript Regex
- 8. javascript - cambiar el alfa de una imagen
- 9. ¿Obtener datos de imagen en JavaScript?
- 10. Cambiar varias fuentes de imagen Javascript
- 11. obteniendo parte de una imagen con JavaScript
- 12. Javascript Imagen Objeto - Manejar proceso de carga
- 13. Decode imagen de bitarray JPEG2000 con Javascript
- 14. ¿Cómo escuchar fácilmente las solicitudes xhr con javascript?
- 15. Ajax solicitudes de subdominio cruzado?
- 16. Jquery Autocompletar Solicitudes encadenadas
- 17. Solicitudes AJAX de caché
- 18. Interceptar todas las solicitudes provenientes de una página web
- 19. URL relativas en solicitudes AJAX
- 20. Monitoreo de solicitudes en Chrome
- 21. ¿Cómo guardar una imagen con JavaScript?
- 22. Convertir texto en imagen usando javascript
- 23. Javascript para acercar y alejar una imagen
- 24. Usar javascript para recortar la imagen
- 25. Detectando una imagen 404 en javascript
- 26. convertir cadena base64 a imagen con javascript
- 27. Iluminar una imagen usando estilos o Javascript
- 28. Cambiar la imagen alt con Javascript onclick
- 29. Solicitudes AJAX entre sitios
- 30. Combine las solicitudes CSS de WebResource.axd
¿Se da cuenta de que el navegador * no * cancela las descargas cuando navega fuera de una página? Estoy de acuerdo en que debería. Sin embargo, también podría imaginar fácilmente que diferentes navegadores podrían tener un comportamiento diferente. Desafortunadamente. – Bruce
Bueno, esta es una aplicación ajax, así que nunca dejo la página, sin embargo, traté de 'salir' de la página y para mi sorpresa, la imagen NO detiene la descarga. Guau. No esperaba eso. Estoy usando FF 3.0.10/IE8 y Fiddler para ver el tráfico. – frio80