Skip to content

Commit

Permalink
Fancy longpolling
Browse files Browse the repository at this point in the history
  • Loading branch information
djo committed Apr 9, 2013
1 parent 30a0bce commit 82ed44e
Showing 1 changed file with 24 additions and 10 deletions.
34 changes: 24 additions & 10 deletions priv/static/js/messages.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
var activeRequest = undefined

function Messages () {
var messageTemplate = _.template($("#message").html()),
topicContentTemplate = _.template($("#topic-content").html()),
topicMessages = $('.topic-messages'),
activeRequest = undefined,
topicMessages = $('.topic-messages')

self = {
addMessages: function (messageBox, messages) {
Expand Down Expand Up @@ -30,21 +31,34 @@ function Messages () {
},

poll: function (messageBox, timestamp) {
if (activeRequest != undefined)
activeRequest.abort()

setTimeout(function () {
$.get(messageBox.data("poll_url") + "/" + timestamp)
.success(function (data) {
self.addMessages(messageBox, data.messages)
self.poll(messageBox, data.timestamp)
var url = messageBox.data("poll_url") + "/" + timestamp

activeRequest = $.ajax({
type: "GET",
url: url,
cache: false,
timeout: 20000,
success: function (data) {
self.addMessages(messageBox, data.messages)
self.poll(messageBox, data.timestamp)
},
error: function (xhr) {
if (xhr.statusText !== "abort") {
activeRequest = undefined
self.poll(messageBox, timestamp)
}
}
})
}, 1000)
},

showMessages: function (e) {
e.preventDefault()

if (activeRequest != undefined)
activeRequest.abort()

var topic = $(this).parents('.topic')
var topicContent = topicContentTemplate(topic.data('topic'))
topicMessages.html(topicContent)
Expand All @@ -53,7 +67,7 @@ function Messages () {
var submitButton = $('.new_message button', messageBox)
submitButton.click(self.createMessage)

activeRequest = $.ajax({
$.ajax({
type: "GET",
url: messageBox.data("list_url"),
success: function (data){
Expand Down

0 comments on commit 82ed44e

Please sign in to comment.