summaryrefslogtreecommitdiff
path: root/coverage/htmlfiles/coverage_html.js
diff options
context:
space:
mode:
authorpankajp <pankaj86@gmail.com>2018-05-24 12:43:32 +0000
committerpankajp <pankaj86@gmail.com>2018-05-24 12:43:32 +0000
commitb27ab43a7e00277e919d2aee8df55c8c2bceb0ab (patch)
treeb297156d3594671d2b568e10f5f90d5a3ce900e6 /coverage/htmlfiles/coverage_html.js
parent644391c631e357711a8583db49b2243625f0ef00 (diff)
downloadpython-coveragepy-git-b27ab43a7e00277e919d2aee8df55c8c2bceb0ab.tar.gz
Prevent expensive relayout in loop in html report js
Faster html report loading in browser by avoiding unneeded expensive layouts in the loop to generate markers. --HG-- branch : pankajp/faster-html-report-ui
Diffstat (limited to 'coverage/htmlfiles/coverage_html.js')
-rw-r--r--coverage/htmlfiles/coverage_html.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/coverage/htmlfiles/coverage_html.js b/coverage/htmlfiles/coverage_html.js
index f6f5de20..b7fbd9c9 100644
--- a/coverage/htmlfiles/coverage_html.js
+++ b/coverage/htmlfiles/coverage_html.js
@@ -555,11 +555,14 @@ coverage.resize_scroll_markers = function () {
var previous_line = -99,
last_mark,
- last_top;
+ last_top,
+ offsets = {};
+ // Calculate line offsets outside loop to prevent relayouts
+ c.missed_lines.each(function(){offsets[this.id] = $(this).offset().top});
c.missed_lines.each(function () {
- var line_top = Math.round($(this).offset().top * marker_scale),
- id_name = $(this).attr('id'),
+ var id_name = $(this).attr('id'),
+ line_top = Math.round(offsets[id_name] * marker_scale),
line_number = parseInt(id_name.substring(1, id_name.length));
if (line_number === previous_line + 1) {