Chiamata Jquery / Ajax con timer

Ho una pagina php che echi le righe da un database. Voglio chiamarlo via jquery / ajax ogni 30 secondi. Ma voglio anche essere in grado di chiamare la pagina in qualsiasi momento in modo che se aggiungo un record tramite il modulo, una volta inviato il modulo, voglio che la pagina venga chiamata ad ajax per aggiornare subito i risultati. Qualcuno può indicarmi la giusta direzione o fornire un codice base in modo da poter provare a capirlo? Ancora molto nuovo per jquery / ajax.

Se desideri impostare qualcosa su un timer, puoi utilizzare i metodi setTimeout o setInterval di JavaScript:

 setTimeout ( expression, timeout ); setInterval ( expression, interval ); 

Dove expression è una funzione e timeout e interval sono interi in millisecondi. setTimeout esegue il timer una volta e esegue l’ expression una volta mentre setInterval eseguirà l’ expression ogni volta che passa l’ interval .

Quindi nel tuo caso funzionerebbe qualcosa del genere:

 setInterval(function() { //call $.ajax here }, 5000); //5 seconds 

Per quanto riguarda l’Ajax, vedi il metodo ajax() di jQuery. Se si esegue un intervallo, non vi è nulla che impedisce di chiamare lo stesso ajax() da altre posizioni nel codice.


Se ciò che si desidera è che venga eseguito un intervallo ogni 30 secondi fino a quando un utente inizia l’invio di un modulo … e successivamente crea un nuovo intervallo, è anche ansible:

setInterval() restituisce un numero intero che è l’ID dell’intervallo.

 var id = setInterval(function() { //call $.ajax here }, 30000); // 30 seconds 

Se memorizzi clearInterval(id) in una variabile, puoi chiamare clearInterval(id) che fermerà la progressione.

Quindi è ansible ripristinare la setInterval() dopo aver completato l’invio del modulo ajax.