##// END OF EJS Templates
If thread is specified in the post template, do not load it again
If thread is specified in the post template, do not load it again

File last commit:

r1463:437271ff default
r1670:c9facaf1 default
Show More
updates.js
53 lines | 1.3 KiB | application/javascript | JavascriptLexer
var UPDATE_INTERVAL = 10000;
var ports = [];
var includePostBody = false;
function updateFavPosts() {
var url = '/api/new_posts/';
if (includePostBody) {
url += '?include_posts';
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
if (xhr.status == 200 || xhr.status == 304) {
var data = xhr.responseText;
for (var i = 0; i < ports.length; i++) {
port = ports[i];
try {
port.postMessage(data);
} catch (error) {
// Assume the port was closed with the tab
var index = ports.indexOf(port);
ports.splice(index, 1);
}
}
}
}
}
xhr.open('GET', url);
xhr.send(null);
}
onconnect = function(e) {
var port = e.ports[0];
port.start();
port.onmessage = function(e) {
// FIXME For now we include body even if a panel was opened once
if (e.data.includePostBody) {
includePostBody = true;
}
updateFavPosts();
}
ports.push(port);
}
setInterval(function() {
updateFavPosts();
}, UPDATE_INTERVAL);