keep track of which portal guids have a detail request in progress, to prevent sending additional requests while waiting for a response

This commit is contained in:
Jon Atkins 2014-07-09 05:43:15 +01:00
parent ed62714734
commit b9f9288567

View File

@ -10,7 +10,7 @@
(function(){ (function(){
var cache; var cache;
var requestQueue = {};
window.portalDetail = function() {}; window.portalDetail = function() {};
@ -30,6 +30,7 @@ window.portalDetail.isFresh = function(guid) {
var handleResponse = function(guid, data, success) { var handleResponse = function(guid, data, success) {
delete requestQueue[guid];
if (success) { if (success) {
cache.store(guid,data); cache.store(guid,data);
@ -45,11 +46,15 @@ var handleResponse = function(guid, data, success) {
} }
window.portalDetail.request = function(guid) { 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); }
);
} }