From c3b1d17da4b5d6badbeeb2cf25cb8f8061e1ccd5 Mon Sep 17 00:00:00 2001 From: Dan Vanderkam Date: Mon, 16 Jul 2012 17:00:37 -0500 Subject: [PATCH 1/1] reduce frequency of calculateEmWidthInDiv calls; 25% speedup on 1000/100 benchmark --- plugins/legend.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/legend.js b/plugins/legend.js index 721812c..85424c6 100644 --- a/plugins/legend.js +++ b/plugins/legend.js @@ -94,6 +94,7 @@ legend.prototype.activate = function(g) { } this.legend_div_ = div; + this.one_em_width_ = 10; // just a guess, will be updated. return { select: this.select, @@ -118,16 +119,15 @@ legend.prototype.select = function(e) { var xValue = e.selectedX; var points = e.selectedPoints; - // Have to do this every time, since styles might have changed. - // TODO(danvk): this is not necessary; dashes never used in this case. - var oneEmWidth = calculateEmWidthInDiv(this.legend_div_); - - var html = generateLegendHTML(e.dygraph, xValue, points, oneEmWidth); + var html = generateLegendHTML(e.dygraph, xValue, points, this.one_em_width_); this.legend_div_.innerHTML = html; }; legend.prototype.deselect = function(e) { + // Have to do this every time, since styles might have changed. var oneEmWidth = calculateEmWidthInDiv(this.legend_div_); + this.one_em_width_ = oneEmWidth; + var html = generateLegendHTML(e.dygraph, undefined, undefined, oneEmWidth); this.legend_div_.innerHTML = html; }; -- 2.7.4