From b9f928856717a57e0511a59f9615f1628921734c Mon Sep 17 00:00:00 2001 From: Jon Atkins Date: Wed, 9 Jul 2014 05:43:15 +0100 Subject: [PATCH] keep track of which portal guids have a detail request in progress, to prevent sending additional requests while waiting for a response --- code/portal_detail.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/portal_detail.js b/code/portal_detail.js index 0f5557ab..e9ca9132 100644 --- a/code/portal_detail.js +++ b/code/portal_detail.js @@ -10,7 +10,7 @@ (function(){ var cache; - +var requestQueue = {}; window.portalDetail = function() {}; @@ -30,6 +30,7 @@ window.portalDetail.isFresh = function(guid) { var handleResponse = function(guid, data, success) { + delete requestQueue[guid]; if (success) { cache.store(guid,data); @@ -45,11 +46,15 @@ var handleResponse = function(guid, data, success) { } window.portalDetail.request = function(guid) { + if (!requestQueue[guid]) { + requestQueue[guid] = true; + + window.postAjax('getPortalDetails', {guid:guid}, + function(data,textStatus,jqXHR) { handleResponse(guid, data, true); }, + function() { handleResponse(guid, undefined, false); } + ); + } - window.postAjax('getPortalDetails', {guid:guid}, - function(data,textStatus,jqXHR) { handleResponse(guid, data, true); }, - function() { handleResponse(guid, undefined, false); } - ); }