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:
Solicite la imagen a través de
img
oculto (por configuraciónsrc
) primero . De esa forma, el navegador almacena la imagen.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.
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.