En principe, vous voulez un conteneur où placer tous les nouveaux messages récupérés.
<div id="messages">
<! -- message 1 -->
<! -- message 2 -->
<div id="newMessages">
</div>
</div>
alors vous voulez un bouton (ou l'ancre, ou autre) que vous pouvez brancher un fetch-plus-méthode:
<input type="button" value="Fetch more messages" id="btnFetchMessages" />
Placez le raccordement quelque part à l'intérieur domready:
var lastFetchedMessage = 0;
$('#btnFetchMessages').click(function() {
$.ajax({
url: '/getMessages.php',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: '{"lastId":'+lastFetchedMesasge+'"}',
success: newMessagesReceived
});
Donc, sur un clic du bouton, nous soumettons une requête AJAX à getMessages.php
où vous regarderez le lastFetchedMessage
et retournerez les 10 messages suivants en fonction de cela. Sur cette page, vous retournez un tableau JSON contenant les messages, avec toutes leurs informations que vous êtes intéressé par
Sur un reques AJAX avec succès, le funciton newMessagesReceived
seront appelés.
function newMessagesReceived(result) {
var container = $('#newMessages');
for(var i = 0; i < result.length; i++) {
var message = $('<div>' + result[i].body + '</div>');
container.append(message);
}
var lastFetchedMessage = result[i].id;
}
ci-dessus on suppose que vous retourner un tableau avec des messages, qui ont au moins les propriétés body
et id
:
[ { "body": "new message1", "id": "10" }, { "body": "new message2", "id": "11" } ]
Ces nouveaux messages sont-ils extraits du serveur via Ajax? – Sampson