2010-12-07 9 views
2

Je voudrais faire la mise à jour d'un contenu div dès qu'une nouvelle ligne apparaît dans une base de données MySQL (je crée une application webmail). Au moment où j'écris ceci, il devient plus clair pour moi que je ne peux pas envoyer une sorte de message de serveur au client lui demandant de mettre à jour, donc je suis arrivé à la conclusion que la meilleure façon d'avoir des mises à jour en direct est de utilisez un appel ajax jQuery, déclenché par un événement setTimeOut.Mises à jour en direct en utilisant AJAX

Ma question est la suivante: y a-t-il une meilleure façon de faire? Ou si je dois utiliser setTimeOut, quel intervalle dois-je définir pour conserver l'équilibre optimal entre l'utilisation du serveur et les temps de mise à jour?

Le code exécutera chaque appel AJAX sera une requête (pour récupérer les nouveaux messages) et une boucle pour le publier dans un ul.

Répondre

1

Je pense que HTML5 WebSockets pourrait être ce que vous cherchez ...

Il y a un exemple utilisation here.

Comme vous le mentionnez, le support est limité à Chrome et Safari actuellement.

+0

Merci pour l'idée - Je vais jeter un oeil à websockets quand HTML5 devient plus courant, cependant, pour l'instant je voudrais garder la compatibilité avec les navigateurs HTML4 actuels. – Bojangles

2

C'est la meilleure façon sauf si vous utilisez Hub flux ou un serveur COMET qui est inverse AJAX :)

+0

Merci pour l'aide. Je vais rester avec AJAX. Seriez-vous capable de recommander un bon intervalle de temps? Est-ce que 30 secondes seraient ok? – Bojangles

+0

Eh bien j'ai des tableaux de bord où j'utilise 5 secondes, mais ces grands sites arent, donc si votre site devient grand, alors vous pouvez utiliser 1 minute. Qui a besoin de vérifier le courrier plus d'une fois par minute :) – benhowdle89

+0

Très vrai. Merci pour l'aide :-) – Bojangles