From: Dan Vanderkam Date: Mon, 16 Jul 2012 22:00:37 +0000 (-0500) Subject: reduce frequency of calculateEmWidthInDiv calls; 25% speedup on 1000/100 benchmark X-Git-Tag: v1.0.0~231 X-Git-Url: https://adrianiainlam.tk/git/?a=commitdiff_plain;h=c3b1d17da4b5d6badbeeb2cf25cb8f8061e1ccd5;p=dygraphs.git reduce frequency of calculateEmWidthInDiv calls; 25% speedup on 1000/100 benchmark --- 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; };