jquery-mobile/tests/speed/stats/startup.js

67 lines
1.6 KiB
JavaScript

(function(Perf) {
var $listPage = $( "#list-page" ), firstCounter = 0;
Perf.setCurrentRev();
Perf.pageLoadStart = Date.now();
$( document ).bind( "mobileinit", function() {
Perf.pageProcessingStart = Date.now();
});
$listPage.live( "pagebeforecreate", function() {
if( firstCounter == 0 ) {
Perf.pageCreateStart = Date.now();
firstCounter++;
}
});
$listPage.live( "pagecreate", function( event ) {
if( event.target !== $("#list-page")[0] ){
return;
}
Perf.pageEnhanceStart = Date.now();
});
$listPage.live( "pageinit", function( event ) {
// if a child page init is fired ignore it, we only
// want the top level page init event
if( event.target !== $("#list-page")[0] ){
return;
}
Perf.pageLoadEnd = Date.now();
// report the time taken for a full app boot includes the time for
// the jquery mobile js to load
Perf.report({
datapoint: "fullboot",
value: Perf.pageLoadEnd - Perf.pageLoadStart
});
// report the time taken for the first page to be enhanced
// pagecreate -> pageinit
Perf.report({
datapoint: "enhancement",
value: Perf.pageLoadEnd - Perf.pageEnhanceStart
});
// report the time taken for the page to process. does *not*
// inclue the load time for js
// mobileinit -> pageinit
Perf.report({
datapoint: "pageprocessing",
value: Perf.pageLoadEnd - Perf.pageProcessingStart
});
// record the time taken to load and enhance the page
// start polling for a new revision
Perf.report({
datapoint: "pageload",
value: Perf.pageCreateStart - Perf.pageLoadStart,
after: function() {
Perf.poll();
}
});
});
})(window.Perf);