From 127261100ea263626261f96844032e0e968da274 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 8 Jan 2014 14:53:32 -0500 Subject: [PATCH] fixed #698 - ajaxify.go will now cancel any active API requests when it is called --- public/src/ajaxify.js | 4 ++-- public/src/templates.js | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index b3a8959006..478797733f 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -49,9 +49,9 @@ var ajaxify = {}; // end if ($('#content').hasClass('ajaxifying')) { - return true; + templates.cancelRequest(); } - + // Remove trailing slash url = url.replace(/\/$/, ""); diff --git a/public/src/templates.js b/public/src/templates.js index 23687bc515..627aa50d51 100644 --- a/public/src/templates.js +++ b/public/src/templates.js @@ -4,7 +4,8 @@ templates, fs = null, available_templates = [], - parsed_variables = {}; + parsed_variables = {}, + apiXHR; module.exports = templates = { "globals": {} @@ -174,7 +175,7 @@ parse_template(); } - jQuery.get(RELATIVE_PATH + '/api/' + api_url, function (data) { + apiXHR = jQuery.get(RELATIVE_PATH + '/api/' + api_url, function (data) { if (!data) { ajaxify.go('404'); @@ -183,12 +184,12 @@ template_data = data; parse_template(); - }).fail(function (data) { + }).fail(function (data, textStatus) { if (data && data.status == 404) { return ajaxify.go('404'); } else if (data && data.status === 403) { return ajaxify.go('403'); - } else { + } else if (textStatus !== "abort") { app.alertError(data.responseJSON.error); } }); @@ -232,6 +233,12 @@ } + templates.cancelRequest = function() { + if (apiXHR) { + apiXHR.abort(); + } + } + templates.flush = function () { parsed_variables = {}; } @@ -294,7 +301,7 @@ data[g] = data[g] || templates.globals[g]; } } - + return (function parse(data, namespace, template, blockInfo) { if (!data || data.length == 0) { template = '';