diff --git a/pkg/template/pages/repo_commit.html b/pkg/template/pages/repo_commit.html
index ec64a8021..da32581e0 100644
--- a/pkg/template/pages/repo_commit.html
+++ b/pkg/template/pages/repo_commit.html
@@ -133,16 +133,39 @@
outputWS.onopen = function () { console.log('output websocket open'); };
outputWS.onerror = function (e) { console.log('websocket error: ' + e); };
outputWS.onclose = function (e) { window.location.reload(); };
- outputWS.onmessage = function (e) {
- outputBox.innerHTML += formatLine(e.data);
- if (window.autofollow) {
- window.scrollTo(0, document.body.scrollHeight);
- }
+
+ window.requestAnimationFrame = window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ function(callback, element) {
+ return window.setTimeout(function() {
+ callback(+new Date());
+ }, 1000 / 60);
+ };
+
+ var lineBuffer = "";
+
+ outputWS.onmessage = function (e) {
+ lineBuffer += formatLine(e.data);
};
- {{ else }}
+
+ function updateScreen() {
+ if(lineBuffer.length > 0) {
+ outputBox.innerHTML += lineBuffer;
+ lineBuffer = '';
+
+ if (window.autofollow) {
+ window.scrollTo(0, document.body.scrollHeight);
+ }
+ }
+ requestAnimationFrame(updateScreen);
+ }
+
+ requestAnimationFrame(updateScreen);
+
+ {{ else }}
$.get("/{{ .Repo.Slug }}/commit/{{ .Commit.Hash }}/build/{{ .Build.Slug }}/out.txt", function( data ) {
$( "#stdout" ).html(formatLine(data));
});
{{ end }}
-{{ end }}
+{{ end }}
\ No newline at end of file