plugin navegador htaccess evitar caché cache aprovechar almacenamiento javascript html xmlhttprequest browser-cache cache-control

javascript - htaccess - XMLHttpRequest: Habilitar explícitamente el almacenamiento en caché del navegador(datos binarios)



aprovechar el almacenamiento en caché del navegador wordpress (1)

Resolví el problema haciendo lo obvio:

  1. Solicite la imagen a través de img oculto (por configuración src ) primero . De esa forma, el navegador almacena la imagen.

  2. Solicite los datos binarios de la imagen a través de AJAX después . Como el navegador utiliza los datos anteriores almacenados en caché, puedo analizar los datos de la imagen, sin emitir otra solicitud.

  3. Actualice el src de la imagen "visible".

De esta forma, logro lo que necesito: visualizar una imagen "en vivo" con análisis de datos previos sin tener que solicitar la imagen dos veces.

Preludio

Mi aplicación web ( palabras clave : HTML, JavaScript, jQuery; tiene que trabajar en : IE8 +, Chrome, FF) tiene que presentar datos de imágenes en vivo desde una clase de WebCam. Esta "WebCam" integra un servidor web que proporciona los datos de imágenes en vivo como BMP .

Los datos de la imagen se "descargan" a través de la configuración del atributo src de una etiqueta img .

La cuestión

Quiero analizar los datos de imagen del lado del cliente. Para hacer eso, me gustaría pre-descargar la imagen usando XMLHttpRequest (usando esta respuesta proporcionada de stackoverflow ) y luego actualizar el atributo src de la etiqueta img . Tengo entendido que el navegador debe utilizar los datos de imagen en caché descargados a través de XMLHttpRequest .

El problema es que el navegador (IE8 +, FF y Chrome) emite otra solicitud al servidor para que descargue la imagen nuevamente (es decir, no usa los datos en caché o los datos no se almacenan en caché en primer lugar).

¿Cómo habilito el navegador para almacenar en caché los datos y usarlos en lugar de emitir otra solicitud?

Apéndice

El servidor envía un Cache-Control: max-age=5, public para Chrome y Cache-Control: no-store, max-age=5 para todos los demás navegadores.

En Chrome, puedo gestionar la segunda solicitud enviando un 304 Not Modified . El navegador ENTONCES usará la imagen en caché. En todos los otros navegadores (mencionados), esto no funciona.

Actualización 1

Lo sé, podría usar el Esquema URI de datos para actualizar el atributo src . Sin embargo, esto no funcionaría para IE8 (ver requisitos más arriba) ya que IE8 solo admite 32KB como máximo.