Skip to content

Instantly share code, notes, and snippets.

Created September 30, 2015 21:55
Show Gist options
  • Save anonymous/1221e13ce8ef7414d5c3 to your computer and use it in GitHub Desktop.
Save anonymous/1221e13ce8ef7414d5c3 to your computer and use it in GitHub Desktop.
<script>
$('body').append("<div id='perfi'><span class='result'></span><span class='rendered'></span></div>");
var start, gotData, rendered;
var update = function(){
if (gotData) {
$('#perfi .result').text( parseInt(gotData - start) + "ms");
}
if (rendered) {
$('#perfi .rendered').text( parseInt(rendered - start) + "ms");
}
};
var skip = false;
$('body')[0].addEventListener("DOMNodeInserted", function (ev) {
if (skip) { return; }
rendered = window.performance.now();
skip = true;
update();
skip = false;
}, false);
var oldAjax = Discourse.ajax;
Discourse.ajax = function(){
var result = oldAjax.apply(this, arguments);
var arg = arguments[0];
if (arg.match && arg.match(/\/t\//)) {
start = window.performance.now();
gotData = null;
rendered = null;
result.then(function(){
gotData = window.performance.now();
update();
});
}
return result;
};
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment