throttle markdown preview

pull/1/head
ansuz 8 years ago
parent d49e6deffb
commit dc80b6b11f

@ -110,6 +110,10 @@ define([
return stringify(obj); return stringify(obj);
}; };
var drawPreview = Cryptpad.throttle(function () {
DiffMd.apply(DiffMd.render(editor.getValue()), $preview);
}, 150);
var onLocal = config.onLocal = function () { var onLocal = config.onLocal = function () {
if (initializing) { return; } if (initializing) { return; }
if (isHistoryMode) { return; } if (isHistoryMode) { return; }
@ -117,7 +121,7 @@ define([
editor.save(); editor.save();
DiffMd.apply(DiffMd.render(editor.getValue()), $preview); drawPreview();
var textValue = canonicalize(CodeMirror.$textarea.val()); var textValue = canonicalize(CodeMirror.$textarea.val());
var shjson = stringifyInner(textValue); var shjson = stringifyInner(textValue);
@ -324,14 +328,13 @@ define([
var hjson = JSON.parse(shjson); var hjson = JSON.parse(shjson);
var remoteDoc = hjson.content; var remoteDoc = hjson.content;
DiffMd.apply(DiffMd.render(remoteDoc), $preview);
var highlightMode = hjson.highlightMode; var highlightMode = hjson.highlightMode;
if (highlightMode && highlightMode !== APP.highlightMode) { if (highlightMode && highlightMode !== APP.highlightMode) {
CodeMirror.setMode(highlightMode, onModeChanged); CodeMirror.setMode(highlightMode, onModeChanged);
} }
CodeMirror.setValueAndCursor(oldDoc, remoteDoc, TextPatcher); CodeMirror.setValueAndCursor(oldDoc, remoteDoc, TextPatcher);
drawPreview();
if (!readOnly) { if (!readOnly) {
var textValue = canonicalize(CodeMirror.$textarea.val()); var textValue = canonicalize(CodeMirror.$textarea.val());

@ -122,5 +122,14 @@ define([], function () {
xhr.send(null); xhr.send(null);
}; };
Util.throttle = function (f, ms) {
var to;
var g = function () {
window.clearTimeout(to);
to = window.setTimeout(f, ms);
};
return g;
};
return Util; return Util;
}); });

@ -71,6 +71,7 @@ define([
common.bytesToMegabytes = Util.bytesToMegabytes; common.bytesToMegabytes = Util.bytesToMegabytes;
common.bytesToKilobytes = Util.bytesToKilobytes; common.bytesToKilobytes = Util.bytesToKilobytes;
common.fetch = Util.fetch; common.fetch = Util.fetch;
common.throttle = Util.throttle;
// import hash utilities for export // import hash utilities for export
var createRandomHash = common.createRandomHash = Hash.createRandomHash; var createRandomHash = common.createRandomHash = Hash.createRandomHash;

Loading…
Cancel
Save