From 7317d41c84be29a92cd054875eb12c4b09a54e45 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 17 Oct 2008 12:57:34 +0000 Subject: [PATCH] gf-server-jsapi: clean up old callbacks --- src/server/gf-server-jsapi.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/server/gf-server-jsapi.js b/src/server/gf-server-jsapi.js index 5c02395e8..26b41575a 100644 --- a/src/server/gf-server-jsapi.js +++ b/src/server/gf-server-jsapi.js @@ -42,10 +42,15 @@ gf.httpGetJSONP = function (url, callback) { } var callbackIndex = window.jsonCallbacks.length; window.jsonCallbacks.push(function (output) { + // get rid of the script tag document.getElementsByTagName("head")[0].removeChild(script); + // let this function be garbage-collected + window.jsonCallbacks[callbackIndex] = null; + // shrink the array if possible + while (window.jsonCallbacks.length > 0 && window.jsonCallbacks[window.jsonCallbacks.length-1] == null) { + window.jsonCallbacks.pop(); + } callback(output); - window.jsonCallbacks[callbackIndex] = null; // let the function be garbage-collected - // FIXME: there will be lots of nulls in that array, we should purge it }); var callbackName = "jsonCallbacks[" + callbackIndex + "]";