From dbf2f53eb6a3d0c49bd7585d8e9547dc8c57c95c Mon Sep 17 00:00:00 2001 From: raylu Date: Tue, 9 Aug 2011 00:32:25 -0700 Subject: don't spam xhr's when there is an error or user stops --- static/script.js | 16 +++++++++++++++- templates/p.html | 4 +--- updates.go | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/static/script.js b/static/script.js index d96650c..9513d59 100644 --- a/static/script.js +++ b/static/script.js @@ -1,3 +1,5 @@ +var current_id = ''; +var ids = []; var player; var litColor = '#eee'; var dimmedColor = '#555'; @@ -28,7 +30,18 @@ function getUpdates() { dataType: 'json', data: {pid: pid, timestamp: timestamp}, success: handleUpdates, - complete: getUpdates + error: function (_, textStatus) { + switch (textStatus) { + case 'abort': + return; + case 'error': + case 'parsererror': + setTimeout(getUpdates, 1000); + return; + default: + getUpdates(); + } + } }); } @@ -55,6 +68,7 @@ function handleUpdates(data) { break; } } + getUpdates(); } function drawBar(id) { diff --git a/templates/p.html b/templates/p.html index eb4dc80..79971c1 100644 --- a/templates/p.html +++ b/templates/p.html @@ -29,10 +29,8 @@ {{$first := "82KEVKGRAhI"}} - + diff --git a/updates.go b/updates.go index 78db802..e0917cc 100644 --- a/updates.go +++ b/updates.go @@ -58,7 +58,7 @@ func addUpdate(pid int, action uint, song *Song) { listeners[pid] = nil } -// assumes locked +// assumes caller has updateLock func checkUpdates(pid int, timestamp int64) *Update { pup, _ := headUpdates[pid] for pup != nil { -- cgit v1.2.3