JSFiddle - React, Tailwind, and code Playground
by mstaab
JavaScript
var json = '{"start":"1399975466.367","phase1":100,"phase2":155.55,"phase3":250,"end":544.33}';
var serverData = JSON.parse(json);
// time, as per clients clock, when the request hit the server
var requestStartMs = performance.timing.requestStart / 1000;
var clientServerDelta = requestStartMs - serverData.start;
console.log("measured client-server clock delta: %f", clientServerDelta);
console.log("mark 'start', in client time %f", requestStartMs + clientServerDelta);
// remove the absolute timestamp, the loop handles all relative events
delete serverData.start;
for (var phase in serverData) {
console.log("mark '%s', rel. time %f, in client time %f", phase, serverData[phase], requestStartMs + clientServerDelta + serverData[phase]);
// console.timeStamp(phase, requestStartMs + clientServerDelta + serverData[phase])
// or
// var date = new Date(requestStartMs + clientServerDelta + serverData[phase]);
// console.timeStamp(phase, date);
}