Skip to content

Commit 1e1a426

Browse files
committed
Throttle html refresh events
1 parent 4bd2f26 commit 1e1a426

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

plugins/editor/index.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,32 @@ function editor(app, opts, done){
2222
var outputConsole;
2323
var buffer = new ConsoleBuffer();
2424

25+
var refreshQueued = null;
26+
var lastRefresh = 0;
27+
var refreshDelayMillis = 64;
28+
2529
var space = app.workspace;
2630

2731
function output(evt){
2832
buffer.update(evt);
33+
34+
if(refreshQueued){
35+
return;
36+
}
37+
if(lastRefresh < Date.now() - refreshDelayMillis){
38+
refreshConsole();
39+
}else{
40+
refreshQueued = setTimeout(refreshConsole, refreshDelayMillis);
41+
}
42+
}
43+
44+
function refreshConsole(){
2945
if(outputConsole){
3046
outputConsole.innerHTML = buffer.getConsoleHTML();
3147
outputConsole.scrollTop = outputConsole.scrollHeight;
3248
}
49+
refreshQueued = null;
50+
lastRefresh = Date.now();
3351
}
3452

3553
function clearOutput(){

0 commit comments

Comments
 (0)