44 votes

Appel Jquery / Ajax avec minuterie

Je me demandais si quelqu'un pourrait m'aider. J'ai une page php qui résonne des lignes d'une base de données. Je veux l'appeler via jquery / ajax toutes les 30 secondes. Mais je veux aussi pouvoir appeler la page à tout moment pour que, si j'ajoute un enregistrement via le formulaire, une fois le formulaire envoyé, je souhaite que la page via appelée à ajax mette immédiatement à jour les résultats. Est-ce que n'importe qui peut me diriger dans la bonne direction ou fournir un code de base afin que je puisse essayer de comprendre ceci? Toujours très nouveau sur jquery / ajax.

72voto

treeface Points 7972

Si vous voulez mettre quelque chose sur une minuterie, vous pouvez utiliser du JavaScript setTimeout ou setInterval méthodes:

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

expression est une fonction et timeout et interval sont des entiers en millisecondes. setTimeout pistes de la minuterie une fois et exécute l' expression une fois alors que setInterval va exécuter l' expression chaque fois que l' interval passe.

Donc, dans votre cas, il serait de travailler à quelque chose comme ceci:

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

Aussi loin que l'Ajax va, voir jQuery ajax() méthode. Si vous exécutez un intervalle, il n'y a rien qui vous empêche d'appeler le même ajax() d'autres endroits dans votre code.

-1voto

user3304709 Points 18

Je pense que la réponse ci-dessus à propos de l'appel ajax après chaque intervalle fait geler le navigateur. J'ai essayé cette méthode récemment, mon navigateur s'est bloqué avec cette technique. Il y a une nouvelle approche du noeud js, il suffit de google pour le noeud js

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X