Skip to content

Instantly share code, notes, and snippets.

@Troland
Created June 23, 2018 16:53
Show Gist options
  • Save Troland/50a7d0a2615a240eda039b7e0ab56b40 to your computer and use it in GitHub Desktop.
Save Troland/50a7d0a2615a240eda039b7e0ab56b40 to your computer and use it in GitHub Desktop.
performance.now()-polyfill
// relies on Date.now() which has been supported everywhere modern for years.
// as Safari 6 doesn't have support for NavigationTiming, we use a Date.now() timestamp for relative values
// if you want values similar to what you'd get with real perf.now, place this towards the head of the page
// but in reality, you're just getting the delta between now() calls, so it's not terribly important where it's placed
(function(){
// prepare base perf object
if (typeof window.performance === 'undefined') {
window.performance = {};
}
if (!window.performance.now){
const nowOffset = Date.now();
if (performance.timing && performance.timing.navigationStart){
nowOffset = performance.timing.navigationStart
}
window.performance.now = function now(){
return Date.now() - nowOffset;
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment