2010-03-16 4 views
0

J'ai créé un blog très simple sur www.example.com avec une seule page. Lorsque je me connecte à www.example.com, je vois tous les messages insérés dans la base de données (dans mysql).Ajax: distinguer les anciens messages et les nouveaux messages

Maintenant je veux que toutes les 60 secondes une requête ajax vérifie dans la base de données s'il y a de nouveaux messages. S'il y a de nouveaux messages, ceux-ci seront insérés en haut au-dessus des anciens messages.

Voici ma question:

Comment puis-je récupérer par l'Ajax que de nouveaux messages (et ainsi distinguer les anciens messages et de nouveaux messages)?

Répondre

1

Vous devez renvoyer un compteur sur la page plutôt que de se souvenir du dernier ID de publication. Puis

SELECT required_fields, more_required, etc 
FROM posts 
WHERE post_id > on_page_variable 

donc à la page

var last_post_id = 32; // or whatever 
$.getJSON('script.php', {'post_id': last_post_id }, function(data){ 
    $.each(data.post, function(post){ 
     $('div.post:first').before(post.html); 
     last_post_id = post.id; 
    }); 
}); 
+0

Votre solution est bonne, mais si je débranche Internet pendant 1 heure (par exemple), puis rebranchez-la, je ne peux pas récupérer tous les nouveaux messages. je pouvais sauver la date du dernier message dans un cookie ou dans un autre endroit puis faire une demande de paiement ajax en utilisant cette date comme ceci: SELECT required_fields, more_required, etc de messages OÙ POST_DATE> post_saved Est-ce une bonne approche? Où puis-je enregistrer la date du dernier message? Merci;) – xRobot

+0

mis à jour pour votre scénario :) – Andy

+0

merci ....... = D – xRobot

Questions connexes