Skip to content

Commit 93342a0

Browse files
committed
Merge pull request #102 from parallaxinc/performance
Throttle html refresh events for better performance under load
2 parents 4bd2f26 + b2b02ae commit 93342a0

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

plugins/editor/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,44 @@ 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 != null){
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(){
3654
buffer.clear();
3755
if(outputConsole){
3856
outputConsole.innerHTML = buffer.getConsoleHTML();
3957
}
58+
if(refreshQueued != null){
59+
clearInterval(refreshQueued);
60+
refreshQueued = null;
61+
}
62+
lastRefresh = 0;
4063
}
4164

4265
output.clear = clearOutput;

0 commit comments

Comments
 (0)