HTTP/2 302
x-cloud-trace-context: a8a1c6e62b09c57425db237605dec685
location: /en-US/docs/Web/API/PerformanceObserver
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
accept-ranges: bytes
cache-control: no-store
server: Google Frontend
content-type: text/plain; charset=utf-8
date: Sun, 28 Dec 2025 15:13:36 GMT
x-served-by: cache-bfi-krnt7300095-BFI, cache-bfi-krnt7300102-BFI, cache-sin-wsat1880031-SIN, cache-bom-vanm7210033-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1766934816.843400,VS0,VE289
vary: Accept
content-length: 61
HTTP/2 200
x-goog-stored-content-length: 148066
x-goog-metageneration: 1
referrer-policy: strict-origin-when-cross-origin
expires: Sun, 28 Dec 2025 16:13:36 GMT
x-goog-hash: crc32c=9nAj8w==, md5=aaBC1ZWH6lTDzEoeAIs/fw==
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://*.googletagmanager.com assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M=' 'sha256-YCNoU9DNiinACbd8n6UPyB/8vj0kXvhkOni9/06SuYw=' 'sha256-PZjP7OR6mBEtnvXIZfCZ5PuOlxoDF1LDZL8aj8c42rw='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' mdn.github.io *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-goog-meta-goog-reserved-file-mtime: 1766882816
x-frame-options: DENY
x-goog-stored-content-encoding: identity
x-goog-generation: 1766884186459676
via: 1.1 google, 1.1 varnish, 1.1 varnish, 1.1 varnish, 1.1 varnish
server: Google Frontend
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
last-modified: Sun, 28 Dec 2025 01:09:46 GMT
x-goog-storage-class: STANDARD
x-cloud-trace-context: 22327505895e2a7a8142e1e3aaea578a
x-content-type-options: nosniff
content-type: text/html
etag: "69a042d59587ea54c3cc4a1e008b3f7f"
cache-control: public, max-age=3600
x-guploader-uploadid: AHVrFxPjbqf3yDfNIg3XY0t_0HBd5CESkqfzPDQ93PemcSlgfq52bPoMQGxzPOjyqi3HddMj9hbUYc4
strict-transport-security: max-age=63072000
content-encoding: gzip
accept-ranges: bytes
age: 0
date: Sun, 28 Dec 2025 15:13:36 GMT
x-served-by: cache-bfi-kbfi7400041-BFI, cache-bfi-kbfi7400063-BFI, cache-sin-wsat1880066-SIN, cache-bom-vanm7210033-BOM
x-cache: MISS, MISS, MISS, MISS
x-cache-hits: 0, 0, 0, 0
x-timer: S1766934816.145716,VS0,VE346
vary: Accept-Encoding
content-length: 19885
PerformanceObserver - Web APIs | MDN
PerformanceObserver()
Creates and returns a new PerformanceObserver object.
PerformanceObserver.supportedEntryTypes Read only
Returns an array of the entryType values supported by the user agent.
PerformanceObserver.observe()
Specifies the set of entry types to observe. The performance observer's callback function will be invoked when performance entry is recorded for one of the specified entryTypes.
PerformanceObserver.disconnect()
Stops the performance observer callback from receiving performance entries.
PerformanceObserver.takeRecords()
Returns the current list of performance entries stored in the performance observer, emptying it out.
The following example creates a PerformanceObserver watching for "mark" (PerformanceMark ) and "measure" (PerformanceMeasure ) events.
The perfObserver callback provides a list (PerformanceObserverEntryList ) which allows you to get observed performance entries.
function perfObserver(list, observer) {
list.getEntries().forEach((entry) => {
if (entry.entryType === "mark") {
console.log(`${entry.name}'s startTime: ${entry.startTime}`);
}
if (entry.entryType === "measure") {
console.log(`${entry.name}'s duration: ${entry.duration}`);
}
});
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });
Enable JavaScript to view this browser compatibility table.