dartads-round2

JavaScript performance comparison

Test case created

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
master
var dartAds = function() {
  var perfTest = (window.location.search.indexOf("perftest=true") != -1);
  var _page = false;
  var _params = [];
  var _tile = 1;
  var _ord;
  var _deferredAds = {};
  var _siteCodeOR = '';

  window.dartAdComplete = function(id, w, h) {
    var iframe = document.getElementById(id).firstChild;
    iframe.width = w+"px";
    iframe.height = h+"px";
  };

  var generateUrl = function(params, iframe) {
    if (!_public.defaults.server || !_public.defaults.siteCode)
      return "";

    var url = [];
    url.push(_public.defaults.server);
    url.push((iframe)?"adi":"adj");
    url.push("/");
    if (_siteCodeOR === '') {
        url.push(_public.defaults.siteCode);
    } else {
        url.push(_siteCodeOR);
    }
    url.push("/"+_page+";");
   
    var revTags = [];
    var dartParam = [];
    for (var pi=0;pi<params.length;pi++) {
      var item = params[pi];
      for (param in item) {
        if (typeof item[param] === 'object') {
          for (var i = 0; i < item[param].length; i++) {
            url.push(param+"="+item[param][i]+";");
            revTags.push(param+"="+item[param][i]+"_");
            dartParam[param] = item[param][i];
          }
        } else {
          if(perfTest && param=="cat") item[param]="perftest";
          else if(perfTest && param=="scat") item[param]="perftest";
          else if(perfTest && param=="sscat") item[param]="perftest";
          url.push(param+"="+item[param]+";");
          revTags.push(param+"="+item[param]);
          dartParam[param] = item[param];
        }
      }
    }
   
    dmjs.revenueTags.push("Dart;"+revTags.join("_"));
    if (_public.defaults.staging)
      url.push("envr=stage;");
   
    var dartUparam = "sz-"+dartParam["sz"]+"_ctype-"+dartParam["ctype"];

    if (typeof dexQS !== "undefined" && dexQS.length > 0){
      var adContext = "";
      if(dexQS.indexOf("u=")!=-1){
        adContext = "_" + dartUparam;
      }else{
        adContext = ";u="+dartUparam;
      }
      url.push(dexQS+adContext+";");
    }
 
    url.push("tile="+_tile+";");
    url.push("ord="+_ord+"?");
        _tile++;
    return url.join('');
  };
 


  var _public = {
    getAdUrl: function(params, iframe) {

      var p = [];
   
      // url params
      for(var i=0;i<_params.length;i++) {
        p.push(_params[i]);
      }
      // ad sizes
      for(var i=0;i<params.length;i++) {
        p.push(params[i]);
      }
     
      var url = generateUrl(p, (iframe));
      return url;
    },
    getAd: function(params, width, height) {
      var iframe = (width && height);

      if(navigator.userAgent.match(/iPad/i)) {
        iframe = false;
      }
         
      var url = this.getAdUrl(params, iframe);
      if (!url)
        return false;
      var adCall;
      if (!iframe) {
        adCall = '<center><scr'+'ipt type="text/javascript" src="'+url+'"><\/script></center>';
      } else {
        adCall = '<iframe src="'+url+'" width="'+width+'" height="'+height+'" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>';
        //_deferredAds[target] = { url: url, width: width, height: height };
      }
      return adCall;
    },
    setParams: function(page, params) {
      _page = page;
      _params = params;
      _ord = Math.floor(Math.random()*10000000000000);
    },
    renderAd: function(params, width, height) {
      if (!_page || !_params) return;

      var ad = this.getAd(params, width, height);

      document.write(ad);
    },
    renderiFrameAd: function(params, width, height, code) {
      // code is being used to pass a new siteCode
      if (!code) {
          var code = '';
      }
      _siteCodeOR = code;

      if(dmjs.global.opDART160Test && params[0]['sz'] === '160x600') {
        params[0].test = 'onesixty';
      }

      if(navigator.userAgent.match(/iPad/i)) {
        this.renderAd(params, width, height);
        return;
      }
           
      var id = "DartAd_"+Math.round(Math.random()*10000000) ;
      var url = this.getAdUrl(params);
      if (!url) return;
     
      var i = document.createElement("iframe");
      var src = "/media/ad.html?divId="+id+"&w="+width+"&ad="+escape(url);

      i.scrolling = "no";
      i.frameBorder = "no";
      i.marginHeight = "0";
      i.marginWidth = "0";
      i.height = height || "0px";
      i.width = "0px";
      //i.src = src;
      document.write("<div><center id='"+id+"'></center></div>");
      document.getElementById(id).appendChild(i);
      //for FF 3.5
      i.contentWindow.location.href = src;
    },
    renderAdDynamic: function(container, params, width, height) {
      var id = "DartAd_"+Math.round(Math.random()*10000000) ;
      var url = this.getAdUrl(params);
      if (!url) return;

      var i = document.createElement("iframe");
      var src = "/media/ad.html?divId="+id+"&w="+width+"&ad="+escape(url);
      i.scrolling = "no";
      i.frameBorder = "no";
      i.marginHeight = "0";
      i.marginWidth = "0";
      i.height = height || "0px";
      i.width = "0px";

      var center = $("<div><center id='"+id+"'></center></div>");
      center.find('#'+id).append(i);
      $(container).append(center);
      //for FF 3.5
      i.contentWindow.location.href = src;
    },
    renderAdElements: function(nodes) {
      if (!_page || !_params) return;
      for (var i = 0; i < nodes.length; i++) {
        var node = nodes[i];
        var size = eval(node.getAttribute("data-dartAdSize"));
        var params = eval(node.getAttribute("data-dartAdParams"));
        if (node.getAttribute("data-dartCompanion") == "1") {
          var adUrl = this.getAdUrl(params, false);
          window.adaptvCompanionAdTag = adUrl;
        } else {
          var ad = this.getAd(params, size[0], size[1]);
          if (ad)
            node.innerHTML = ad;
        }
      }
    },
    defaults: {
      server: null,
      siteCode: null,
      staging: false
    }
  };
  return _public;
}();
 
pending…
caching
var dartAds = function (win, doc) {
    var perfTest = (win.location.search.indexOf("perftest=true") != -1),
        _page = false,
        _params = [],
        _tile = 1,
        _ord,
        _deferredAds = {},
        _siteCodeOR = '';

  win.dartAdComplete = function(id, w, h) {
    var iframe = doc.getElementById(id).firstChild;
    iframe.width = w+"px";
    iframe.height = h+"px";
  };

  var generateUrl = function(params, iframe) {
    if (!_public.defaults.server || !_public.defaults.siteCode)
      return "";

    var url = [];
    url.push(_public.defaults.server);
    url.push((iframe)?"adi":"adj");
    url.push("/");
    if (_siteCodeOR === '') {
        url.push(_public.defaults.siteCode);
    } else {
        url.push(_siteCodeOR);
    }
    url.push("/"+_page+";");
   
    var revTags = [];
    var dartParam = [];
    for (var pi=0;pi<params.length;pi++) {
      var item = params[pi];
      for (param in item) {
        if (typeof item[param] === 'object') {
          for (var i = 0; i < item[param].length; i++) {
            url.push(param+"="+item[param][i]+";");
            revTags.push(param+"="+item[param][i]+"_");
            dartParam[param] = item[param][i];
          }
        } else {
          if(perfTest && param=="cat") item[param]="perftest";
          else if(perfTest && param=="scat") item[param]="perftest";
          else if(perfTest && param=="sscat") item[param]="perftest";
          url.push(param+"="+item[param]+";");
          revTags.push(param+"="+item[param]);
          dartParam[param] = item[param];
        }
      }
    }
   
    dmjs.revenueTags.push("Dart;"+revTags.join("_"));
    if (_public.defaults.staging)
      url.push("envr=stage;");
   
    var dartUparam = "sz-"+dartParam["sz"]+"_ctype-"+dartParam["ctype"];

    if (typeof dexQS !== "undefined" && dexQS.length > 0){
      var adContext = "";
      if(dexQS.indexOf("u=")!=-1){
        adContext = "_" + dartUparam;
      }else{
        adContext = ";u="+dartUparam;
      }
      url.push(dexQS+adContext+";");
    }
 
    url.push("tile="+_tile+";");
    url.push("ord="+_ord+"?");
        _tile++;
    return url.join('');
  };
 


  var _public = {
    getAdUrl: function(params, iframe) {

      var p = [];
   
      // url params
      for(var i=0;i<_params.length;i++) {
        p.push(_params[i]);
      }
      // ad sizes
      for(var i=0;i<params.length;i++) {
        p.push(params[i]);
      }
     
      var url = generateUrl(p, (iframe));
      return url;
    },
    getAd: function(params, width, height) {
      var iframe = (width && height);

      if(navigator.userAgent.match(/iPad/i)) {
        iframe = false;
      }
         
      var url = this.getAdUrl(params, iframe);
      if (!url)
        return false;
      var adCall;
      if (!iframe) {
        adCall = '<center><scr'+'ipt type="text/javascript" src="'+url+'"><\/script></center>';
      } else {
        adCall = '<iframe src="'+url+'" width="'+width+'" height="'+height+'" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>';
        //_deferredAds[target] = { url: url, width: width, height: height };
      }
      return adCall;
    },
    setParams: function(page, params) {
      _page = page;
      _params = params;
      _ord = Math.floor(Math.random()*10000000000000);
    },
    renderAd: function(params, width, height) {
      if (!_page || !_params) return;

      var ad = this.getAd(params, width, height);

      doc.write(ad);
    },
    renderiFrameAd: function(params, width, height, code) {
      // code is being used to pass a new siteCode
      if (!code) {
          var code = '';
      }
      _siteCodeOR = code;

      if(dmjs.global.opDART160Test && params[0]['sz'] === '160x600') {
        params[0].test = 'onesixty';
      }

      if(navigator.userAgent.match(/iPad/i)) {
        this.renderAd(params, width, height);
        return;
      }
           
      var id = "DartAd_"+Math.round(Math.random()*10000000) ;
      var url = this.getAdUrl(params);
      if (!url) return;
     
      var i = doc.createElement("iframe");
      var src = "/media/ad.html?divId="+id+"&w="+width+"&ad="+escape(url);

      i.scrolling = "no";
      i.frameBorder = "no";
      i.marginHeight = "0";
      i.marginWidth = "0";
      i.height = height || "0px";
      i.width = "0px";
      //i.src = src;
      doc.write("<div><center id='"+id+"'></center></div>");
      doc.getElementById(id).appendChild(i);
      //for FF 3.5
      i.contentWindow.location.href = src;
    },
    renderAdDynamic: function(container, params, width, height) {
      var id = "DartAd_"+Math.round(Math.random()*10000000) ;
      var url = this.getAdUrl(params);
      if (!url) return;

      var i = doc.createElement("iframe");
      var src = "/media/ad.html?divId="+id+"&w="+width+"&ad="+escape(url);
      i.scrolling = "no";
      i.frameBorder = "no";
      i.marginHeight = "0";
      i.marginWidth = "0";
      i.height = height || "0px";
      i.width = "0px";

      var center = $("<div><center id='"+id+"'></center></div>");
      center.find('#'+id).append(i);
      $(container).append(center);
      //for FF 3.5
      i.contentWindow.location.href = src;
    },
    renderAdElements: function(nodes) {
      if (!_page || !_params) return;
      for (var i = 0; i < nodes.length; i++) {
        var node = nodes[i];
        var size = eval(node.getAttribute("data-dartAdSize"));
        var params = eval(node.getAttribute("data-dartAdParams"));
        if (node.getAttribute("data-dartCompanion") == "1") {
          var adUrl = this.getAdUrl(params, false);
          window.adaptvCompanionAdTag = adUrl;
        } else {
          var ad = this.getAd(params, size[0], size[1]);
          if (ad)
            node.innerHTML = ad;
        }
      }
    },
    defaults: {
      server: null,
      siteCode: null,
      staging: false
    }
  };
  return _public;
}(window, document);
pending…

You can edit these tests or add even more tests to this page by appending /edit to the URL.

Compare results of other browsers

0 comments

Add a comment