##// END OF EJS Templates
Don't include pow and hasher scripts to both document and worker. Import...
Don't include pow and hasher scripts to both document and worker. Import hasher script only once for all tabs, not on every posting

File last commit:

r1463:437271ff default
r1468:14229bdf 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);