2012-05-01 31 views
7

Tengo algunos píxeles de seguimiento en nuestro sitio, que me gustaría proteger contra ellos y que afectan nuestra experiencia de usuario si sus servidores están inactivos o son lentos. ¿Cuál es la forma más fácil de especificar el tiempo máximo que el navegador debe intentar cargar una imagen determinada, es decir, intentar durante 100 ms y luego renunciar? (Prefiero no rastrear a un cliente determinado que tener un servidor suspendido en el servidor de un servidor de impacto en nuestro sitio).<img src> w/timeout?

Respuesta

2

debe cargarlos cuando el documento esté listo. o en la última línea (en el html). De esta manera, no dañará la experiencia del usuario. documento preparado también se puede usar con jQuery.

pero puede usar window.load.

como regla (no siempre) - todas las secuencias de comandos deben estar al final de la página.

si desea forzar el tiempo de espera de muertes:

crear una etiqueta img.

adjuntar el evento load a la img (esta función fijará la bandera: descargada = 1;)

establezca la src.

con setTimeout Funciona tu vas a matar el img.

cómo?

si después de X MS se descargan == 0 y luego se apaga.

así que cada evento de carga (desde IMg) está configurando un indicador (descargado = 1).

su función de tiempo de espera no importa nada !!! después de x MS ella va a matar a la img - solo si la descargó == 0.

+0

Sí, pero la barra de estado todavía muestra los datos que se están descargando, por lo que parece inacabado. Realmente me gustaría tener una forma real de definir un tiempo de espera. –

+0

@MichaelReston ver mi edición. –

+1

¿Por qué molestarse con la condición en lugar de eliminar el '' de todos modos? – Electro

-1

Puede llamar a un proceso de servidor en la etiqueta IMG. Deje que se preocupe por el tiempo de espera de la carga.

+0

Ya hay un proceso de servidor en la etiqueta: proporciona la "imagen". Es lo que se está tomando el tiempo, y eso debe ser cancelado en el cliente. Si la cancelación se transfiere al servidor, la cancelación también llevará tiempo. –

+0

Así que hágalo y mire el reloj. – ethrbunny

3

Puede insertar el <img> con JavaScript y usar setTimeout() para eliminarlo después de 100 ms.

Ejemplo con jQuery:

var tracker = $("<img>", { src: trackingUrl }).appendTo(document.body); 
setTimeout(function() { tracker.remove(); }, 100); 
0

Usted tendría que usar javascript para hacer esto, no hay nada nativa de HTML/HTTP que había de hacer esto sobre una base de página. Google alrededor para "HTML IMG timeout".

Cuestiones relacionadas