Skip to content

Commit f054c37

Browse files
committed
speed up evaluations from non-text changes
1 parent 738a7c0 commit f054c37

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

src/editor.mjs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,29 @@ const editor = CodeMirror.fromTextArea(document.querySelector('#input'), {
1313
});
1414

1515
let onChangeTimer;
16-
function run() {
17-
if (onChangeTimer !== null) {
18-
clearTimeout(onChangeTimer);
19-
}
20-
onChangeTimer = setTimeout(() => {
21-
onChangeTimer = null;
16+
function run(timer) {
17+
if (timer) {
18+
if (onChangeTimer !== null) {
19+
clearTimeout(onChangeTimer);
20+
}
21+
onChangeTimer = setTimeout(() => {
22+
onChangeTimer = null;
23+
evaluate(editor.getValue());
24+
}, 500);
25+
} else {
2226
evaluate(editor.getValue());
23-
}, 500);
27+
}
2428
}
2529

2630
editor.on('change', () => {
2731
if (!autoEvaluate.checked) {
2832
return;
2933
}
30-
run();
34+
run(true);
3135
});
3236

3337
runButton.addEventListener('click', () => {
34-
run();
38+
run(false);
3539
});
3640

3741
getState('code')
@@ -41,7 +45,7 @@ getState('code')
4145

4246
mode.addEventListener('change', () => {
4347
setState('mode', mode.value);
44-
run();
48+
run(false);
4549
});
4650

4751
getState('mode')

0 commit comments

Comments
 (0)