2010-10-07 16 views
9

Tengo un sitio web simple impulsado por php y estoy tratando de averiguar cómo trata las páginas de php. Algunos de mis documentos php son lógica de enrutamiento y algunos simplemente incluyen para páginas individuales. ¿Cómo hago para que esto funcione sin conexión?html5 almacenamiento en caché sin conexión con sitios controlados por php

Lo que pensé es que tendría que volver a crear la lógica de enrutamiento en javascript. ¿Es esa mi única opción? En ese caso, ¿es posible que el sitio sea conducido por php mientras está en línea y cambie a JS fuera de línea? No puedo encontrarle sentido.

Respuesta

5

Si su sitio es bastante estático, el manifiesto de caché de HTML5 puede llevarlo la mayor parte del camino hasta allí. Haga que PHP muestre un archivo cache.manifest en el formato correcto con todas las URL de su sistema de enrutamiento y esas URL se almacenarán localmente en un navegador compatible. Intentar acceder a ellos los sacará de la memoria caché si es posible.

Si está buscando algo más dinámico, tendrá que hacer más trabajo de campo.

Here's some good info on offline caching.

2

Es importante recordar que PHP se procesa en el servidor. El resultado de su código PHP es todo lo que se envía a su navegador. ¡Su navegador no tiene absolutamente ningún conocimiento de que PHP siquiera se usó para hacer la página!

Si tiene algún código dinámico que debe ejecutarse sin conexión, debe usar Javascript. Si esto es solo para probar en su propia máquina, ponga un servidor web que ejecute PHP en su máquina de desarrollo y acceda a través del http://localhost.

+0

¿Puede la caché de manifiesto archivos .php sin embargo? Digamos que si tengo archivos .php que contienen PHP real y algunos que solo contienen html pero tienen una extensión .php. –

+3

La extensión de nombre de archivo tiene absolutamente ** nada ** que ver con el tipo de archivo. El tipo de archivo está determinado por el tipo de contenido encabezado HTTP. – Brad

1

El almacenamiento en caché sin conexión HTML5 no funciona para que sus páginas interactúen; solo funciona para hacer que una página en particular esté disponible sin conexión. Básicamente, funciona en base a URL por URL. Si necesita absolutamente la funcionalidad fuera de línea, se verá obligado a hacerlo funcionar en JS.

Además, asegúrese de que su manifiesto incluya todos los recursos utilizados por todas las páginas.

Espero que esto ayude!

0

Parece obvio no utilizar ningún archivo de lenguaje de script del lado del servidor, mientras que el almacenamiento en caché en el navegador. PHP/JSP/ASP, etc. Todos son lenguajes del lado del servidor. No podemos cumplir con la solicitud reenviada por el cliente que debe generarse dinámicamente y lo más importante es que no hay ningún servidor ejecutándose en el lado del cliente. Entonces, creo que deberíamos buscar JS cada vez que queremos hacer tales cosas.

Cuestiones relacionadas