{"_id":"timing.js","_rev":"12-44c6f5e03576ef3887ae2573ea0ea7db","name":"timing.js","description":"Navigation Timing API measurement helpers","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"timing.js","version":"1.0.0","description":"User Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint *.js"},"repository":{"type":"git","url":"https://github.com/addyosmani/timing.js"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6"},"gitHead":"e812f66a4d1fffa142b1be345d6cf30862ab059a","_id":"timing.js@1.0.0","_shasum":"1d55b59b713e7c519d37471de20c24043172d8be","_from":".","_npmVersion":"1.4.24","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"dist":{"shasum":"1d55b59b713e7c519d37471de20c24043172d8be","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.0.0.tgz","integrity":"sha512-KO3F3FzZrSp53Gwq7soJRIU/dkvhvEXPGNc1FA9T6FzV1Us0eNh3Z9lLQHuva2OdcO33MekRpEWMm/sbaEp/Eg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWnm3vq0hOyP0AIzQoPyJwGRBy8KzJADyjg4zaaxUUdAIhAJAVQ2ndOo8fqRC79RJXnRiR4h7g9m3NEzZp1dgqA7WV"}]}},"1.0.1":{"name":"timing.js","version":"1.0.1","description":"User Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint *.js"},"repository":{"type":"git","url":"https://github.com/addyosmani/timing.js"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6"},"gitHead":"c93d8574525461a6d94eae12dc994eeb5809a02d","_id":"timing.js@1.0.1","_shasum":"2e27e5d19f93553b56e8f1dd6f3a68ea4149a324","_from":".","_npmVersion":"1.4.24","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"dist":{"shasum":"2e27e5d19f93553b56e8f1dd6f3a68ea4149a324","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.0.1.tgz","integrity":"sha512-sCmMXcqEHAFJ25AyQURFkUUtNl6XMxvLJSqb/b7wg0r190wpRv9/tL1EOGwAqlN9aNNaBnUOhoY6okHZFiYI/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXBkeg6X6YbI2g6wEE74hD82Yxt45E5oUmdywS2CQ3EAiEAgwWy9OFxdsKTXI7q/inlkZTAL3k7xLe5tYhwgN6+WTo="}]}},"1.0.2":{"name":"timing.js","version":"1.0.2","description":"Navigation Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint *.js"},"repository":{"type":"git","url":"https://github.com/addyosmani/timing.js"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6"},"gitHead":"572f982e98c5ba2d307a9c0fb77c5ff6ceedc22c","_id":"timing.js@1.0.2","_shasum":"b1ad98daa3c3b2c8f5d5bf545a8455d6022e2a51","_from":".","_npmVersion":"1.4.24","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"dist":{"shasum":"b1ad98daa3c3b2c8f5d5bf545a8455d6022e2a51","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.0.2.tgz","integrity":"sha512-vsROhiPb693IwuZf8rpkKub8VRvdn0zuDzdTJFmz3/Kn90Bg43PDCYogaphyi2tCGDtiUv8OKD2bsOU9zJ2JXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAamhB7L/m3IS5lJgUzNP2LkO01diVPouIj0e3oPxOKAIhAKtMtB9mx3g9nwXjclSWuhl3CzTlrTgfRTb96Y0j3FRO"}]}},"1.0.3":{"name":"timing.js","version":"1.0.3","description":"Navigation Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint *.js","minify":"uglifyjs timing.js -o timing.min.js"},"repository":{"type":"git","url":"https://github.com/addyosmani/timing.js"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6","uglify-js":"^2.4.16"},"gitHead":"82b7a7875662d61822419fcaf6956fbc64405325","_id":"timing.js@1.0.3","_shasum":"e3fe938263f0daa66f1b43fcfc941dd1d8ab7d46","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"dist":{"shasum":"e3fe938263f0daa66f1b43fcfc941dd1d8ab7d46","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.0.3.tgz","integrity":"sha512-8pTpfjdaMT4EO/tNt/d7CSPwwG2dhQgErvUAoKIGhTNCYkdNeYuwwDokSZeiGofDRn8sw01U76ayP7BDlobBOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXpScPbj+A4tCc4hKILzHQLEZsrLbY3dG+oGA8FIR4BAiEApHy2O5NDxBqLgV9KEKb/OaaZxeJuORs0oy3rFqr0QFQ="}]}},"1.1.0":{"name":"timing.js","version":"1.1.0","description":"Navigation Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint timing.js","minify":"uglifyjs timing.js -o timing.min.js"},"repository":{"type":"git","url":"https://github.com/addyosmani/timing.js"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6","uglify-js":"^2.4.16"},"gitHead":"5499532a9b3686b9ad024dabc37b33222577d0f9","_id":"timing.js@1.1.0","_shasum":"66e1043f72593c9888ddfcf2df41a8789b4fb2fd","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"dist":{"shasum":"66e1043f72593c9888ddfcf2df41a8789b4fb2fd","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.1.0.tgz","integrity":"sha512-dlxGoKLHUwJEhbjrR71YSnMRmxHtkBFaq7rStU5oyw7actWl6upYbJb1yfLi9WOSKgcBCU273y00gkZZpjz43w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkrbyLGJ4sp9t15d8Vsu/IGNtX/0/wWxWX58yYnocSnwIga2ouas6dVHOBDvSTd2t7yZxqP8W5bXcKExvKftC2Mfk="}]}},"1.2.0":{"name":"timing.js","version":"1.2.0","description":"Navigation Timing API measurement helpers","main":"timing.js","scripts":{"jshint":"jshint timing.js","minify":"uglifyjs timing.js -o timing.min.js"},"repository":{"type":"git","url":"git+https://github.com/addyosmani/timing.js.git"},"keywords":["user-timing","user","timing"],"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"homepage":"https://github.com/addyosmani/timing.js","devDependencies":{"jshint":"^2.5.6","uglify-js":"^2.4.16"},"gitHead":"5002afcdce7a766ad385e0ebbdf91e143899b5a4","_id":"timing.js@1.2.0","_shasum":"670f83ea0ffdab97b43adf8a9bc1a1482939dd12","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.1.0","_npmUser":{"name":"addyosmani","email":"addyosmani@gmail.com"},"dist":{"shasum":"670f83ea0ffdab97b43adf8a9bc1a1482939dd12","tarball":"https://registry.npmjs.org/timing.js/-/timing.js-1.2.0.tgz","integrity":"sha512-oOk53VyhT5ychHp4xvjkZpKfGgGQTU25iJlw+a/k9konPoy8zW6QEG9/AnNqw8kxH9ZWGcyc2+VPcFWJJuJv3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHGWi9fxNtzcuIHRoliQBdY/2udjjjaSTCY2nj7thZEvAiEAzg74urcRQ25Fi4WGsHvvbQ/uD9VAMU9/gSgHXAYXESM="}]},"maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/timing.js-1.2.0.tgz_1482182225191_0.8489995510317385"}}},"readme":"timing.js\n=========\n\n> Timing.js is a small set of helpers for working with the [Navigation Timing API](https://developer.mozilla.org/en-US/docs/Navigation_timing) to identify where your application is spending its time. Useful as a standalone script, DevTools Snippet or bookmarklet.\n\n## Features\n\n* Normalizes `firstPaint` across Chrome, Opera and IE11 to `timing.getTimes().firstPaint`. Firefox may be able to do similar with `MozAfterPaint`\n* Adds `firstPaintTime` (`firstPaint` - load/nav start)\n* Adds:`domReadyTime`, `initDomTreeTime`, `loadEventTime`, `loadTime`, `redirectTime`, `requestTime`, `uploadEventTime` `connectTime`\n\n## Installation\n\n### Clone\n\nDownload the [latest](https://github.com/addyosmani/timing.js/archive/master.zip) version or just `git clone https://github.com/addyosmani/timing.js.git`.\n\n### Bower:\n\n```sh\n$ bower install timing-js\n```\n\n### npm:\n\n```sh\n$ npm install timing.js\n```\n\n## Usage\n\nBy default, running the script will print out a summary table of measurements. The API for the script is as follows:\n\nGet measurements:\n\n```sh\ntiming.getTimes();\n```\n\nPrint a summary table of measurements (uses [console.table()](https://plus.google.com/+AddyOsmani/posts/PmTC5wwJVEc)):\n\n```sh\ntiming.printSimpleTable();\n```\n\n![](http://i.imgur.com/zjEST62.png)\n\nAlso works in Firefox DevTools (Firefox Nightly only for now):\n\n![](http://i.imgur.com/jY3xHi3.png)\n\nPrint a complete table of measurements (including rest of `window.performance`):\n\n```sh\ntiming.printTable();\n```\n\n![](http://i.imgur.com/C9eRQe9.png)\n\n\n### Sample output of `timing.getTimes()`\n\nChrome:\n\n```javascript\nfirstPaint: 1411307463455.813 // New\nfirstPaintTime: 685.0390625 // New\nappcacheTime: 2\nconnectEnd: 1411307463185\nconnectStart: 1411307463080\nconnectTime: 105 // New\ndomComplete: 1411307463437\ndomContentLoadedEventEnd: 1411307463391\ndomContentLoadedEventStart: 1411307463391\ndomInteractive: 1411307463391\ndomLoading: 1411307463365\ndomReadyTime: 46 // New\ndomainLookupEnd: 1411307463080\ndomainLookupStart: 1411307463032\nfetchStart: 1411307463030\ninitDomTreeTime: 56 // New\nloadEventEnd: 1411307463445\nloadEventStart: 1411307463437\nloadEventTime: 8 // New\nloadTime: 558 // New\nlookupDomainTime: 48\nnavigationStart: 1411307462887\nreadyStart: 143 // New\nredirectEnd: 0\nredirectStart: 0\nredirectTime: 0 // New\nrequestStart: 1411307463185\nrequestTime: 150 // New\nresponseEnd: 1411307463335\nresponseStart: 1411307463333\nsecureConnectionStart: 1411307463130\nunloadEventEnd: 0\nunloadEventStart: 0\nunloadEventTime: 0 // New\n```\n\nFirefox:\n\n![](http://i.imgur.com/Drr4A6B.png)\n\nIE 11:\n\n![](http://i.imgur.com/ekVHk3P.png)\n\n## Build\n\nRun `npm install` to install necessary dependencies for building the library. Check that `npm run jshint` doesn't throw any exceptions and then run `npm run minify` to minify.\n\n## License\n\nReleased under an MIT license.\n","maintainers":[{"name":"addyosmani","email":"addyosmani@gmail.com"}],"time":{"modified":"2022-06-27T06:53:23.344Z","created":"2014-09-22T14:16:08.582Z","1.0.0":"2014-09-22T14:16:08.582Z","1.0.1":"2014-09-22T14:22:07.854Z","1.0.2":"2014-09-24T16:40:33.085Z","1.0.3":"2014-12-28T16:50:22.237Z","1.1.0":"2015-11-14T15:35:45.758Z","1.2.0":"2016-12-19T21:17:05.430Z"},"homepage":"https://github.com/addyosmani/timing.js","keywords":["user-timing","user","timing"],"repository":{"type":"git","url":"git+https://github.com/addyosmani/timing.js.git"},"author":{"name":"Addy Osmani"},"bugs":{"url":"https://github.com/addyosmani/timing.js/issues"},"readmeFilename":"README.md"}