Como algunos de ustedes ya saben, hay algunos problemas de almacenamiento en caché en Firefox/Chrome para las solicitudes que se inician con el objeto XmlHttpRequest. Estos problemas significan que el navegador no sigue estrictamente las reglas y no va al servidor para el nuevo archivo XSLT (por ejemplo). La respuesta no tiene el encabezado Expires (por razones de rendimiento no podemos usarlo).¿Pidió a Chrome que omita la caché local para XmlHttpRequest como es posible en Firefox?
Firefox tiene un parámetro adicional en el "canal" de objeto XHR al que le pone el valor Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE para ir al servidor de forma explícita.
¿Existe algo así para Chrome?
Permítanme detener inmediatamente a todos que recomendarían agregar la marca de tiempo como un valor de parámetro GET o entero aleatorio - No deseo que el servidor obtenga diferentes solicitudes de URL. Quiero que obtenga la URL original. La razón es que quiero evitar que el servidor reciba demasiadas solicitudes diferentes de archivos estáticos simples y envíe demasiados datos a los clientes cuando no los necesite.
Si tocas el archivo estático con el parámetro GET generado (como '? Forcenew = 12314') obtendría 200 respuestas cada primera vez y 304 para cada solicitud siguiente para ese valor de entero aleatorio. Deseo realizar solicitudes que siempre devolverán 304 si el archivo estático de destino es idéntico a la versión del cliente. Esto es por cierto cómo los navegadores web deberían funcionar de inmediato, pero los objetos XHR tienden a no ir al servidor en absoluto para preguntar si el archivo se modificó o no.
Quería esperar al final de esta recompensa para poner en el camino la forma en que lo resolvimos porque no quería que nadie se dejara influenciar por nuestra solución. Hicimos exactamente lo que sugirió :) En el momento en que ejecutamos "republicación" del sitio web, generamos GET con la marca de tiempo de ese momento. Realmente no veo otra manera ... –
Bueno, con la marca de tiempo: en el trabajo, hemos estado discutiendo el cambio de subversión a git y me he estado preocupando porque ese git no tiene un número de revisión. Quizás deberíamos irnos con la marca de tiempo también. :-) – CodeReaper