2011-06-04 10 views
5

tengo este scriptvs Actualizar

<?php 
header("Expires: Sat, 11 Jun 2011 00:00:00 GMT"); 
echo "Hello World"; 
?> 

Simplemente escribe "Hello World" y establece la memoria caché expira el próximo sábado.

Ahora, cuando me carga esta página en Firefox y haz clic en el botón de recarga, se hace una nueva solicitud al servidor para cargar la página en lugar de sólo servir de caché (pienso para asegurar si last-modified sigue siendo válida).

Sin embargo, si pongo mi cursor en la barra de direcciones y presiono Ingrese, FireFox sirve los contenidos de la caché.

¿Por qué es así? ¿Por qué en el primer caso (recarga) hace una solicitud al servidor, pero en el segundo caso (actualización, supongo?) Sirve desde el caché?

Respuesta

17

Creo que los términos 'actualizar' y 'recargar' son básicamente sinónimos. Veo esta línea en RFC 2616 que describe HTTP/1.1 caché que proporciona una posible ligera diferencia:

Un tiempo de expiración no se puede utilizar para forzar un agente de usuario para refrescar su pantalla o volver a cargar un recurso

En otras palabras, quizás podría decir que refrescante es para pantallas, y volver a cargar es para recursos. Pero como el uso principal de los navegadores para los recursos se muestra, no veo la diferencia.

Aquí hay un short writeup en los términos de un desarrollador que se ha ocupado del control de caché del navegador. Los términos que prefiere son los siguientes:

  • carga: HIT Introduzca en la barra de direcciones; haga clic en los enlaces
  • recargar: F5; Ctrl + R; botón de actualización de la barra de herramientas; Menú -> Actualizar
  • recarga dura: Ctrl +F5; Ctrl + Shift + R

(La recarga dura obliga al navegador que evite su caché. Para Firefox, se mantiene presionada Shift y pulsa el botón de recarga. Wikipedia tiene a list de cómo Haga esto para navegadores comunes. Puede probar su efecto en this page.)

Para responder a su pregunta acerca de cómo Firefox decide cuándo refrescar, aquí es cómo el link from above lo explica:

  • carga: ninguna petición sucede hasta que el recurso en caché expira
  • recarga: la solicitud contiene los encabezados If-Modified-Since y Cache-Control: max-age=0 que permiten que el servidor responda con 304 Not Modified si corresponde
  • disco duro recargar: la solicitud contiene los Pragma: no-cache y Cache-Control: no-cache cabeceras y pasará por alto el caché
+0

Genial :) Gracias –

2

Cuando las personas actualizan una página, generalmente esperan ver nuevos resultados, por lo que el almacenamiento en caché de toda la página no tiene mucho sentido.

+0

supongo que está hablando Refrezcar? –

+0

+1 esto es un problema de ui. –

Cuestiones relacionadas