Ha pasado un tiempo desde que probé HTML, y me estoy quedando perplejo, espero que alguien pueda ayudarme.
Mi objetivo: en mi página de INICIO DE SESIÓN, quiero agregar una sección de notificación de "interrupción". No quiero que los administradores accedan al archivo login.html; Quiero que los datos se tomen de un archivo de texto.
Mi intento: creé un archivo "outage.txt" que está programado para actualizar el servidor web todas las mañanas. Luego uso un DIV y un OBJ para cargar el archivo "outage.txt". Esto funciona.
<table><tr><td> <div id="outage"><object width=475 data="outage.txt"></object></div> </td></tr></table>Mi problema: cuando actualizo mi archivo "outage.txt" y actualizo la página, los datos NO se reflejan en la página. La única forma en que puedo hacer que se cargue correctamente es hacer una actualización forzada (ctrl-F5).
Lo que probé:
-) Agregué metadatos para no usar caché. Pero sigue sin actualizar mis datos.
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" />-) Cambié mi extracción de txt a JQUERY. Extrae los datos muy bien, pero aún no los actualiza.
$.get( "outage.txt", function( data ) {Necesito ayuda: en este momento no estoy seguro de qué pedir ayuda. ¿Hay una mejor manera de tomar un archivo de texto y mostrarlo en la página? Cómo me aseguro de que la página se carga correctamente y no se extrae de la memoria caché. ¿Hay alguna manera de FORZAR la página para forzar la actualización?
Cuando realizo una actualización (Ctl-R) en mi Chrome, actualiza el texto. Probar:
window.onload = function() { document.getElementById("objid").data = "outage.txt"; } <object id="objid" width=475 data="outage.txt">Tengo mi respuesta y haré todo lo posible para resumirla aquí.
Parece que el navegador ve el archivo data="outage.txt" y dice '¡Oye! Ya tengo esto en caché, no es necesario volver a tomar un archivo'. El truco consiste en forzar un cambio en el nombre del archivo que le dice al navegador que 'Este es un archivo nuevo, cárguelo sin importar qué'.
<div id="outage"><object id="outageid" width=475></object></div> <script type="text/javascript"> document.getElementById("outageid").data = "outage.txt?" + Math.floor(Math.random() * 100); </script>