vez una tiempo sola refrescar recargar pagina div con cierto cada automaticamente actualizar javascript browser caching reload

una - refrescar pagina javascript onclick



Recargar una página a través de AJAX cuando window.location=auto.location no funciona (3)

En mi página de inicio tengo:

<ul id="login"> <li> <a id="loginswitch" href="./login-page">log-in</a> | </li> <li> <a id="signupswitch" href="./signup-page">sign-up</a> </li> </ul>

A través de MooTools, obtengo estos elementos de anclaje por ID para que, una vez que se hace clic, aparezca un div llamativo debajo de ellos que contenga el formulario de inicio de sesión o registro (con métodos para detener la propagación de eventos, por supuesto) y al completar el campos en los que se activa la llamada AJAX: se supone que debe crear una sesión y volver a cargar la página para que el usuario tenga una visual de que ya inició sesión y aparecen los controles de nivel de usuario, etc.

La llamada ajax se inicia con la clase AJAX de MooTools y la opción evalScripts se establece en verdadero. La página AJAX devuelve el código del script:

<script type="text/javascript">window.location = self.location;</script>

Este sistema funciona perfectamente, ahora me pregunto por qué si cambio los valores href los anclajes a href="#" mis scripts ya no funcionarán.

¿Tiene algo que ver con la ventana?

¿Cambió su propiedad cuando hice clic en un enlace o incluso cuando se detuvo la propagación del evento?


Ir a un ancla en una página, que es lo que # significa, no requiere una recarga.


window.location = self.location;

Este javascript se está ejecutando .

Cuando se ejecuta, se le dice al navegador que reemplace el valor de window.location con un nuevo valor. No todos los navegadores reaccionarán de la misma manera aquí. Algunos probablemente funcionen como usted espera, pero otros lo harán con inteligencia y compararán los dos valores. El navegador sabe en qué página está, y sabe que solo está pidiendo que vaya a la misma página.

Caché de navegador

El navegador incluso tiene una copia de tu página actual en caché . Puede hablar con el servidor y preguntar si la página que tiene en caché todavía es válida. Si la memoria caché es válida, puede decidir no forzar una recarga de la página. Detrás de escena, esto sucede con encabezados HTTP. Los navegadores y servidores se pueden comunicar a través de HTTP de muchas maneras. En este caso, su navegador envía una solicitud rápida al servidor diciendo algo como esto:

GET /.com/posts/196643/index.html HTTP/1.1 Host: www..com User-Agent: Mozilla/5.0 If-Modified-Since: Sun, 12 Oct 2008 20:41:31 GMT

Esto se llama una solicitud GET condicional . Al decir If-Modified-Since , su navegador dice: "Dame ese archivo, pero solo si se ha modificado desde la última vez que lo vi".

Para resumir, no le has dicho explícitamente al navegador que vuelva a cargar la página.

Así es como puedes:

location.reload( true );

El "verdadero" es un parámetro opcional para forzar una recarga . El navegador ni siquiera mirará la caché. Simplemente hará lo que diga.


Si me dieran esta tarea en particular en el trabajo, la devolvería al diseño. A menos que hablemos de una página segura o de un inicio de sesión de OpenID, no debe aparecer un formulario de inicio de sesión o de inicio de sesión. Los usuarios deben aprender a buscar ese https: en la parte superior de su página, y nunca registrarse si no lo ven.