|
@@ -17,6 +17,7 @@ var $markedVer = document.querySelector('#markedCdn');
|
|
var $optionsElem = document.querySelector('#options');
|
|
var $optionsElem = document.querySelector('#options');
|
|
var $outputTypeElem = document.querySelector('#outputType');
|
|
var $outputTypeElem = document.querySelector('#outputType');
|
|
var $inputTypeElem = document.querySelector('#inputType');
|
|
var $inputTypeElem = document.querySelector('#inputType');
|
|
|
|
+var $responseTimeElem = document.querySelector('#responseTime');
|
|
var $previewElem = document.querySelector('#preview');
|
|
var $previewElem = document.querySelector('#preview');
|
|
var $previewIframe = document.querySelector('#preview iframe');
|
|
var $previewIframe = document.querySelector('#preview iframe');
|
|
var $permalinkElem = document.querySelector('#permalink');
|
|
var $permalinkElem = document.querySelector('#permalink');
|
|
@@ -298,6 +299,7 @@ function checkForChanges() {
|
|
setScrollPercent(scrollPercent);
|
|
setScrollPercent(scrollPercent);
|
|
var endTime = new Date();
|
|
var endTime = new Date();
|
|
delayTime = endTime - startTime;
|
|
delayTime = endTime - startTime;
|
|
|
|
+ setResponseTime(delayTime);
|
|
if (delayTime < 50) {
|
|
if (delayTime < 50) {
|
|
delayTime = 50;
|
|
delayTime = 50;
|
|
} else if (delayTime > 500) {
|
|
} else if (delayTime > 500) {
|
|
@@ -309,6 +311,22 @@ function checkForChanges() {
|
|
checkChangeTimeout = window.setTimeout(checkForChanges, delayTime);
|
|
checkChangeTimeout = window.setTimeout(checkForChanges, delayTime);
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+function setResponseTime(ms) {
|
|
|
|
+ var amount = ms;
|
|
|
|
+ var suffix = 'ms';
|
|
|
|
+ if (ms > 1000 * 60 * 60) {
|
|
|
|
+ amount = 'Too Long';
|
|
|
|
+ suffix = '';
|
|
|
|
+ } else if (ms > 1000 * 60) {
|
|
|
|
+ amount = '>' + Math.floor(ms / (1000 * 60));
|
|
|
|
+ suffix = 'm';
|
|
|
|
+ } else if (ms > 1000) {
|
|
|
|
+ amount = '>' + Math.floor(ms / 1000);
|
|
|
|
+ suffix = 's';
|
|
|
|
+ }
|
|
|
|
+ $responseTimeElem.textContent = amount + suffix;
|
|
|
|
+}
|
|
|
|
+
|
|
function setParsed(parsed, lexed) {
|
|
function setParsed(parsed, lexed) {
|
|
if (iframeLoaded) {
|
|
if (iframeLoaded) {
|
|
$previewIframe.contentDocument.body.innerHTML = parsed;
|
|
$previewIframe.contentDocument.body.innerHTML = parsed;
|
|
@@ -339,6 +357,7 @@ function messageWorker(message) {
|
|
var scrollPercent = getScrollPercent();
|
|
var scrollPercent = getScrollPercent();
|
|
setParsed(e.data.parsed, e.data.lexed);
|
|
setParsed(e.data.parsed, e.data.lexed);
|
|
setScrollPercent(scrollPercent);
|
|
setScrollPercent(scrollPercent);
|
|
|
|
+ setResponseTime(e.data.time);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
clearTimeout(checkChangeTimeout);
|
|
clearTimeout(checkChangeTimeout);
|
|
@@ -363,10 +382,16 @@ function messageWorker(message) {
|
|
};
|
|
};
|
|
}
|
|
}
|
|
markedWorker.working = true;
|
|
markedWorker.working = true;
|
|
|
|
+ workerTimeout(0);
|
|
|
|
+ markedWorker.postMessage(message);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function workerTimeout(seconds) {
|
|
markedWorker.timeout = setTimeout(function () {
|
|
markedWorker.timeout = setTimeout(function () {
|
|
- markedWorker.onerror('Marked is taking a while...');
|
|
|
|
|
|
+ seconds++;
|
|
|
|
+ markedWorker.onerror('Marked has taken longer than ' + seconds + ' second' + (seconds > 1 ? 's' : '') + ' to respond...');
|
|
|
|
+ workerTimeout(seconds);
|
|
}, 1000);
|
|
}, 1000);
|
|
- markedWorker.postMessage(message);
|
|
|
|
}
|
|
}
|
|
checkForChanges();
|
|
checkForChanges();
|
|
setScrollPercent(0);
|
|
setScrollPercent(0);
|