refresco - Actualizar una página PHP por cada segundo predefinido
refresco automatico php (6)
Con jQuery puedes hacerlo):
var seconds = 10;
var id = setInterval(function()
{
$(''#container'').load(''whatever.php'');
}, 1000*seconds);
:)
Me gustaría cargar / actualizar una página en particular por cada 10 segundos para ver los datos actualizados recuperados de la base de datos.
Usé META para hacerlo
<META HTTP-EQUIV=Refresh CONTENT=''10; URL=livedata.php''>
Pero aun así, estoy de acuerdo en que también hacemos esto usando:
- Javascript para cargar un div por settimeout
- Actualización dinámica Ajax
Sería genial si compartes los problemas de rendimiento con META, actualización dinámica AJAX, Javascript settimeout ... También comparte la mejor manera de hacerlo.
Nota: necesita actualizar toda la página en lugar de un marco específico o div.
El uso de AJAX es lo menos intrusivo para el usuario, porque el usuario no se da cuenta de que algo se actualiza / recarga hasta que se completa.
Tenga en cuenta que AJAX puede funcionar mejor o peor que META dependiendo de la situación:
- Si los datos que se actualizarán son pequeños con respecto al tamaño completo de la página HTML, AJAX es mejor que META, porque con AJAX puede enviar solo la diferencia de datos y / o puede enviar datos en un formato más compacto que HTML.
- La ejecución de JavaScript supone una carga para el navegador del usuario. Si el usuario tiene 20 pestañas abiertas (lo cual no es poco común), y cada una de ellas ejecuta algo de setTimeout en segundo plano, puede hacer una gran diferencia en la respoinsiveness del navegador para convertirlas a una actualización sin JavaScript.
Si planeas refrescar toda la página, usar las etiquetas <META>
es la manera más limpia. Parece incómodo tener un temporizador JS que actualice tu página cuando tienes una forma totalmente compatible con HTML.
Sin embargo, si solo necesita actualizar una parte específica de la página, use AJAX. Es mejor en términos de experiencia del usuario, así como de rendimiento.
Para el cliente, en realidad no hay diferencia entre todos los métodos que mencionaste. La única diferencia que puedo encontrar es que el uso no requiere javascript, como hacen otras soluciones, pero hoy en día todo el mundo tiene javascript de todos modos.
La gran diferencia, para mí, está en el uso del servidor. Si tiene 100 usuarios actualizando cada 10 segundos, eso ya es aproximadamente 10 reqs / seg. Dependiendo de la lógica que tenga para generar la página (que probablemente sea dinámica), esto puede hacer que el uso del servidor se dispare. Asegúrate de ser cuidadoso al respecto.
Usar javascript para buscar contenido dinámico tiene un beneficio más: si el contenido no se carga por una vez, puede seguir intentándolo. si recarga la página completa y no se carga, entonces se detendrá allí.
también si usas Ajax, entonces la pantalla es más bonita porque no ves que la página entera se borra y vuelve a renderizar una y otra vez.
tenga en cuenta que también puede usar header () en PHP para lograr lo que la metaetiqueta está haciendo también. Solo asegúrate de hacer la llamada del encabezado () antes de otra salida.