$(function() {
var index = -1,
$document = $(document),
$messages = $('.messages');
// Retrieve all messages after the specified index
function update() {
$.ajax({
url: '/api/messages',
data: {index: index},
contentType: 'application/json',
complete: function() {
window.setTimeout(update, 2000);
},
success: function(data) {
$.each(data.messages, function(i, e) {
$('
')
.addClass('message')
.text(e.message)
.appendTo($messages);
index = e.index;
});
$document.scrollTop(10000);
}
});
}
update();
// Find the message input box and set the appropriate handler for [enter]
var $input = $('#input').focus().keypress(function(e) {
if(e.which == 13) {
$.ajax({
type: 'POST',
url: '/api/newMessage',
data: JSON.stringify({message: $(this).val()}),
contentType: 'application/json'
});
// Clear the contents
$(this).val('');
return false;
}
});
});