Estoy cargando (grandes) imágenes de forma dinámica para dibujar en un lienzo HTML5, algo como esto:Cancelar solicitud única imagen en los navegadores HTML5
var t = new Image();
t.onload = ...
t.src = 'http://myurl';
Pero de vez en cuando nos gustaría cancelar la imagen solicitar por completo.
La única forma en que se me ocurrió establecer src
en ''
. es decir,
t.src = ''
Esto funciona en muchos navegadores, pero parece que sólo Firefox realidad cancela la solicitud HTTP para la imagen.
Probé esto con Fiddler2 desactivando el almacenamiento en caché y habilitando "emular la velocidad del módem". Luego ejecutando a fiddle to test canceling a image request. (me gustaría escuchar otras ideas sobre cómo probar esto)
Sé que hay formas de cancelar todas las solicitudes (as in this question), pero me gustaría cancelar solo una.
¿Alguna idea sobre otras formas (especialmente en los navegadores móviles) de hacer esto?
Tenga cuidado con 't.src = ''', la especificación es vaga sobre lo que debería suceder. Consulte http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/ –
Derecha ... algunos de los navegadores realizan solicitudes a la URL de la página (o URL base) para intentar cargar la imagen con 'src = '''. En Firefox, establecer 't.src = null' también cancela la solicitud, pero no hace nada en otros. La especificación más reciente (trabajo actual) dice (en algunas situaciones) que [debe disparar contra el error] (http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content-1 .html # update-the-image-data) ... kindof. – Amir
Establecer 'src' en una imagen en línea en Firefox también cancela la solicitud anterior:' t.src = 'data: image/gif; base64, R0lGOD ... 'véalo en [este violín] (http: // jsfiddle. net/amirshim/F4HbT/21 /) – Amir