From: Kai Moritz Date: Mon, 24 Sep 2012 12:19:28 +0000 (+0200) Subject: Simplified code X-Git-Tag: 0.1.0~12 X-Git-Url: https://juplo.de/gitweb/?p=openx;a=commitdiff_plain;h=bebf36d20d314c5b338063dc02c58c0f5bf26933 Simplified code * Improved method-naming. * Simplified code in function render_ads(): instead of a recursive call, a while-loop is used now. --- diff --git a/openx.js b/openx.js index eb85805..cba60d3 100644 --- a/openx.js +++ b/openx.js @@ -20,8 +20,8 @@ domain = document.location.protocol == 'https:' ? 'https://' + server + ':8443':'http://' + server, src = domain; - document.write = render; - document.writeln = render; + document.write = document_write; + document.writeln = document_write; src += "/www/delivery/spc.php?zones="; @@ -60,69 +60,68 @@ ads.push(id); } - render_ad(); + render_ads(); } - function render_ad() { + function render_ads() { - if (ads.length == 0) { - id = undefined; - node = undefined; - return; - } + while (ads.length > 0) { - id = ads.pop(); - node = slots[id]; + id = ads.pop(); + node = slots[id]; - // node.append(id + ": " + node.attr('class')); + // node.append(id + ": " + node.attr('class')); - var result, src, inline; + var result, src, inline; - while ((result = /" from OA_output[id] */ - OA_output[id] = OA_output[id].slice(result[0].length,OA_output[id].length); - result = /src\s*=\s*['"]([^'"]*)['"]/i.exec(src); - if (result == null) { - /** script-tag with inline-code: execute inline-code! */ - result = /^\s*<.*$/m.exec(inline); - if (result != null) { - /** Remove leading HTML-comments, because IE will stumble otherwise */ - inline = inline.slice(result[0].length,inline.length); + while ((result = /" from OA_output[id] */ + OA_output[id] = OA_output[id].slice(result[0].length,OA_output[id].length); + result = /src\s*=\s*['"]([^'"]*)['"]/i.exec(src); + if (result == null) { + /** script-tag with inline-code: execute inline-code! */ + result = /^\s*<.*$/m.exec(inline); + if (result != null) { + /** Remove leading HTML-comments, because IE will stumble otherwise */ + inline = inline.slice(result[0].length,inline.length); + } + $.globalEval(inline); + } + else { + /** script-tag with src-URL! */ + ads.push(id); // << The banner might not be rendered fully, or include more calls to document.write(). + /** Load the script and halt all work until the script is loaded and executed... */ + $.getScript(result[1], render_ads); // << jQuery.getScript() generates onload-Handler for _all_ browsers ;) + return; + } } - $.globalEval(inline); - } - else { - /** script-tag with src-URL! */ - ads.push(id); // << The banner might not be rendered fully, or include more calls to document.write(). - /** Load the script and halt all work until the script is loaded and executed... */ - $.getScript(result[1], render_ad); // << jQuery.getScript() generates onload-Handler for _all_ browsers ;) - return; } + + node.append(OA_output[id]); + OA_output[id] = ""; } - node.append(OA_output[id]); - OA_output[id] = ""; - /** This statement will only reached, when no script-element was rendered! */ - render_ad(); + /** All entries from OA_output were rendered */ + id = undefined; + node = undefined; } - function render() { + function document_write() { if (id == undefined) return;