summaryrefslogtreecommitdiff
path: root/public/js/syncscroll.js
diff options
context:
space:
mode:
authorWu Cheng-Han2015-07-02 20:30:43 +0800
committerWu Cheng-Han2015-07-02 20:30:43 +0800
commit17f89e9bd352f866a60e32dadbd7d60085310adf (patch)
treec4e1d2684a4c0794469600ed147bf376b812d069 /public/js/syncscroll.js
parentf8ef5341c70a2aee6b22751eebc500ed24c7825f (diff)
Optimized syncscroll.js buildMap, make it faster
Diffstat (limited to '')
-rw-r--r--public/js/syncscroll.js9
1 files changed, 5 insertions, 4 deletions
diff --git a/public/js/syncscroll.js b/public/js/syncscroll.js
index 2ed3ff03..a9eafe48 100644
--- a/public/js/syncscroll.js
+++ b/public/js/syncscroll.js
@@ -199,6 +199,8 @@ function buildMapInner(syncBack) {
acc = 0;
var lines = editor.getValue().split('\n');
+ var lineHeight = parseFloat(sourceLikeDiv.css('line-height'));
+ var div = sourceLikeDiv[0];
for (i = 0; i < lines.length; i++) {
var str = lines[i];
var h, lh;
@@ -211,9 +213,8 @@ function buildMapInner(syncBack) {
}
sourceLikeDiv.text(str);
- h = parseFloat(sourceLikeDiv.css('height'));
- lh = parseFloat(sourceLikeDiv.css('line-height'));
- acc += Math.round(h / lh);
+ h = parseFloat(div.clientHeight);
+ acc += Math.round(h / lineHeight);
}
sourceLikeDiv.remove();
_lineHeightMap.push(acc);
@@ -260,7 +261,7 @@ function buildMapInner(syncBack) {
scrollMap = _scrollMap;
lineHeightMap = _lineHeightMap;
- if(loaded && syncBack)
+ if (loaded && syncBack)
syncScrollToView();
}