(function(){ var AsyncUrlUtils = new Object(); AsyncUrlUtils.loadUrl = function(src, redirect) { function callCountDown() { AsyncUrlUtils.countDown(redirect); } var img = document.createElement("img"); img.onload = callCountDown; img.onerror = callCountDown; img.onabort = callCountDown; img.src = src; } AsyncUrlUtils.initCounter = function(initValue) { this.imgCounter = initValue; } AsyncUrlUtils.countDown = function(redirect) { this.imgCounter--; if (0 == this.imgCounter) { redirect(); } } function successHandler(){ callback({"code":200,"data":{}}); } var asyncUrls = []; if (asyncUrls.length == 0) { successHandler(); return; } setTimeout(successHandler, 500); AsyncUrlUtils.initCounter(asyncUrls.length); for (var i in asyncUrls) { AsyncUrlUtils.loadUrl(asyncUrls[i], successHandler); } })();