Last active
August 1, 2023 15:42
-
-
Save paulirish/5438650 to your computer and use it in GitHub Desktop.
performance.now() polyfill (aka perf.now())
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// @license http://opensource.org/licenses/MIT | |
// copyright Paul Irish 2015 | |
// Date.now() is supported everywhere except IE8. For IE8 we use the Date.now polyfill | |
// github.com/Financial-Times/polyfill-service/blob/master/polyfills/Date.now/polyfill.js | |
// 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(){ | |
if ("performance" in window == false) { | |
window.performance = {}; | |
} | |
Date.now = (Date.now || function () { // thanks IE8 | |
return new Date().getTime(); | |
}); | |
if ("now" in window.performance == false){ | |
var 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
Hello,
I have mixed this polyfill with Aaron Levine's (https://gist.github.com/Aldlevine/3f716f447322edbb3671) and modifier some code:
I have placed it in this gist: https://gist.github.com/jalbam/cc805ac3cfe14004ecdf323159ecf40e
Any comments will be welcome. Thank you very much.