2011-05-19 10 views
6

Quiero actualizar una página cuando se modifica mi base de datos. Quiero usar jquery para hacer esto. Pregunta no clara? A continuación, echar un vistazo a esto, supongamos que esta es mi página:Usar Jquery para actualizar una página cuando se modifica una base de datos

<?php 
$query=mysql_query("select * from tbl1 where user='admin'"); 
if(mysql_num_rows?($query)!=0) 
{ 
    echo 'Table 1 has values'; 
} else { 
    echo 'Table1 is empty'; 


} 
?> 

Esta acción debe realizarse siempre que se añade ninguna nueva entrada a la base de datos. Supongamos ahora que agrego una entrada a la base de datos manualmente, luego la página debe mostrar automáticamente el resultado como "Tabla1 tiene valores". Sé que se puede usar al usar la página de actualización periódicamente, pero no quiero usarlo. En su lugar, quiero probar algo diferente, como ajax polling? ¿Puede alguien darme una demostración?

Respuesta

1

Puede utilizar encuestas largas, pero investigue un poco antes. Su servidor puede matar la solicitud que parece estar abierta durante un largo período de tiempo.

En PHP, el código será algo como ...

set_time_limit(0); 

while (TRUE) { 
    // Query database here 
    if ($results) { 
     echo json_encode($results); 
     exit; 
    } 

    sleep(1); 
} 
+0

Eso está bien, debería estar agotando el tiempo de todos modos. Ver mi respuesta –

+0

¿cuál es el valor de $ resultados? –

0

que busca soluciones Comet Ajax-Push /. Estos no son triviales.
También mencionó ajax pooling.
Bueno, en el lado del servidor debe realizar un bucle hasta que tenga un tiempo de espera (que usted mismo o el servidor definió, asegúrese de devolver el código de estado HTTP de Timeout Occured) o la solicitud puede ser satisfecha.
Y en el lado del cliente cada vez que completa la operación con éxito solo la maneja y luego vuelve a hacer la misma llamada ajax, si agotó el tiempo de espera simplemente haga la misma solicitud ajax nuevamente hasta que esté satisfecho.

Cuestiones relacionadas