<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/vue-observer-composables/writing-a-useresizeobserver-composable-for-vue-3/</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/ssr-hydration-observer-safety/fixing-intersectionobserver-is-not-defined-in-nextjs/</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/angular-observer-directives/lazy-loading-images-with-an-angular-intersectionobserver-directive/</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/building-a-windowed-virtual-list-with-intersectionobserver/</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/recycling-dom-nodes-in-observer-driven-lists/</loc>
    <lastmod>2026-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/polyfilling-resizeobserver-for-legacy-browsers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/how-intersectionobserver-threshold-works-in-practice/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/intersectionobserver-not-firing-in-iframe/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/syncing-observer-callbacks-with-requestanimationframe/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/detecting-added-and-removed-nodes-with-mutationobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/observer-callback-not-called-on-initial-render/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/preventing-memory-leaks-in-long-running-observers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/fixing-resizeobserver-loop-limit-exceeded/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/angular-observer-directives/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/building-a-typescript-useintersectionobserver-hook/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/fixing-doubled-observer-callbacks-in-react-strict-mode/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/ssr-hydration-observer-safety/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/vue-observer-composables/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/dynamic-visibility-tracking/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/dynamic-visibility-tracking/tracking-ad-visibility-for-analytics-compliance/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/element-resize-detection-patterns/detecting-container-queries-with-resizeobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/element-resize-detection-patterns/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/creating-smooth-infinite-scroll-without-jank/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/restoring-scroll-position-in-infinite-scroll/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/building-a-lazy-image-loader-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/lazy-loading-background-images-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/building-a-sticky-header-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/scroll-spy-navigation-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/callback-throttling-debouncing/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/callback-throttling-debouncing/optimizing-intersectionobserver-for-1000-list-items/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/callback-throttling-debouncing/should-you-debounce-resizeobserver-callbacks/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/batching-dom-reads-and-writes-in-observer-callbacks/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/reducing-layout-thrashing-with-resizeobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/weakmap-observer-registries/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/weakmap-observer-registries/weakmap-vs-map-for-observer-target-tracking/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/mocking-intersectionobserver-in-jest-and-vitest/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/simulating-viewport-intersection-in-unit-tests/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/testing-resizeobserver-callbacks-with-playwright/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/debugging-flaky-observer-tests-in-ci/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/measuring-lcp-with-performanceobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/performanceobserver-buffered-entries-explained/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/tracking-layout-shifts-with-performanceobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/correlating-long-tasks-with-observer-callbacks/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/autoplaying-video-only-when-in-viewport/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/pausing-background-video-to-save-battery/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/lazy-loading-youtube-iframes-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/measuring-video-view-time-with-intersectionobserver/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/resizing-a-canvas-with-resizeobserver-without-blurring/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/using-devicepixelcontentbox-for-crisp-canvas/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/debouncing-chart-redraws-on-container-resize/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/fixing-chart-libraries-that-ignore-container-resize/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/one-observer-vs-many-benchmarking-the-difference/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/keying-an-observer-pool-by-threshold-and-rootmargin/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/disconnecting-pooled-observers-on-route-change/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/observer-pool-memory-profile-in-single-page-apps/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/resizeobserver-not-firing-on-display-none-elements/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/rootmargin-not-working-with-percentages/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/intersectionobserver-v2-tracking-visibility-support/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/mutationobserver-vs-intersectionobserver-when-to-use-each/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/why-callback-refs-beat-useeffect-for-observer-targets/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/ssr-hydration-observer-safety/hydration-mismatch-from-observer-driven-class-toggles/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/preventing-duplicate-fetches-in-observer-driven-pagination/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/caching-getboundingclientrect-results-in-observer-callbacks/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/rendering-pipeline-observer-timing/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/rendering-pipeline-observer-timing/where-intersectionobserver-callbacks-run-in-the-event-loop/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/rendering-pipeline-observer-timing/resizeobserver-and-the-update-the-rendering-steps/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/rendering-pipeline-observer-timing/mutationobserver-microtask-timing-explained/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/rendering-pipeline-observer-timing/why-observer-callbacks-lag-one-frame-behind/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/visual-viewport-and-mobile-viewport-units/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/visual-viewport-and-mobile-viewport-units/handling-the-mobile-virtual-keyboard-with-visualviewport/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/visual-viewport-and-mobile-viewport-units/dvh-svh-lvh-vs-resizeobserver-for-full-height-layouts/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/visual-viewport-and-mobile-viewport-units/pinch-zoom-and-intersectionobserver-what-changes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/visual-viewport-and-mobile-viewport-units/tracking-the-address-bar-collapse-on-mobile-safari/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-triggered-reveal-animations/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-triggered-reveal-animations/fade-in-on-scroll-with-intersectionobserver-and-css/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-triggered-reveal-animations/staggered-reveal-animations-for-card-grids/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-triggered-reveal-animations/css-scroll-driven-animations-vs-intersectionobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-triggered-reveal-animations/respecting-prefers-reduced-motion-in-scroll-reveals/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/accessible-observer-driven-interfaces/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/accessible-observer-driven-interfaces/announcing-infinite-scroll-loads-with-aria-live/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/accessible-observer-driven-interfaces/accessible-lazy-images-alt-text-and-placeholders/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/accessible-observer-driven-interfaces/keeping-keyboard-focus-stable-when-content-loads/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/accessible-observer-driven-interfaces/making-scroll-spy-navigation-screen-reader-friendly/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/observer-work-scheduling/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/observer-work-scheduling/deferring-non-urgent-observer-work-with-requestidlecallback/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/observer-work-scheduling/yielding-from-observer-callbacks-with-scheduler-yield/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/observer-work-scheduling/keeping-observer-callbacks-under-the-inp-budget/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/observer-work-scheduling/prioritising-observer-tasks-with-scheduler-posttask/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/profiling-observer-performance/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/profiling-observer-performance/reading-observer-callbacks-in-the-chrome-performance-panel/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/profiling-observer-performance/finding-observer-leaks-with-heap-snapshot-diffing/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/profiling-observer-performance/measuring-callback-cost-with-user-timing-marks/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/profiling-observer-performance/spotting-forced-reflow-inside-resizeobserver-callbacks/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/svelte-and-solid-observer-primitives/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/svelte-and-solid-observer-primitives/writing-a-svelte-intersectionobserver-action/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/svelte-and-solid-observer-primitives/svelte-5-runes-and-resizeobserver-state/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/svelte-and-solid-observer-primitives/cleaning-up-observers-in-svelte-and-solid-lifecycles/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/svelte-and-solid-observer-primitives/solidjs-createintersectionobserver-primitive/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/web-component-observer-controllers/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/web-component-observer-controllers/building-a-lit-reactive-controller-for-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/web-component-observer-controllers/lazy-upgrading-custom-elements-on-visibility/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/web-component-observer-controllers/observing-elements-inside-shadow-dom/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/web-component-observer-controllers/disconnectedcallback-observer-cleanup-in-custom-elements/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/isintersecting-vs-intersectionratio-which-to-check/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/using-a-scroll-container-as-intersectionobserver-root/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/intersectionobserver-api-deep-dive/detecting-element-visibility-inside-overflow-hidden-parents/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/contentrect-vs-borderboxsize-which-to-read/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/resizeobserver-firing-on-page-load-explained/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/resizeobserver-mechanics-triggers/observing-svg-elements-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/watching-attribute-changes-with-attributefilter/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/mutationobserver-performance-with-subtree-true/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/mutationobserver-dom-change-tracking/using-takerecords-before-disconnect/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/unobserve-vs-disconnect-when-to-use-each/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/observing-elements-that-are-not-yet-in-the-dom/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/observer-lifecycle-memory-management/reusing-one-observer-after-disconnect/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/feature-detecting-observer-apis-safely/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/safari-intersectionobserver-quirks-and-workarounds/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/browser-compatibility-polyfills/resizeobserver-box-options-browser-support/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/measuring-inp-with-performanceobserver-event-timing/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/performanceobserver-rendering-metrics/observing-long-animation-frames-loaf/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/testing-mutationobserver-driven-code/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/core-observer-fundamentals-browser-apis/testing-observers-in-jsdom-and-browsers/visual-regression-testing-for-lazy-loaded-content/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/native-loading-lazy-vs-intersectionobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/lazy-loading-responsive-images-with-srcset/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/preloading-the-next-image-before-it-scrolls-in/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/lazy-loading-images-media/lazy-loading-components-with-dynamic-import/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/bidirectional-infinite-scroll-loading-upward/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/infinite-scroll-pagination/infinite-scroll-inside-a-scrollable-container/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/dynamic-visibility-tracking/tracking-section-read-time-with-intersectionobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/dynamic-visibility-tracking/measuring-scroll-depth-without-scroll-listeners/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/dynamic-visibility-tracking/impression-tracking-for-product-carousels/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/element-resize-detection-patterns/truncating-text-responsively-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/element-resize-detection-patterns/building-a-responsive-navigation-overflow-menu/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/element-resize-detection-patterns/syncing-textarea-auto-height-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/media-playback-visibility-control/picture-in-picture-when-video-scrolls-out-of-view/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/resizing-webgl-canvases-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/responsive-canvas-and-chart-resizing/keeping-d3-charts-responsive-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/detecting-when-position-sticky-becomes-stuck/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/reading-progress-bar-with-intersectionobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/implementation-patterns-for-viewport-resize-tracking/scroll-driven-effects-sticky-headers/hiding-a-header-on-scroll-down-showing-on-scroll-up/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/callback-throttling-debouncing/throttling-mutationobserver-callbacks-with-microtask-batching/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/callback-throttling-debouncing/when-threshold-arrays-cost-more-than-they-save/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/using-entry-boundingclientrect-instead-of-requerying/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/dom-query-minimization/avoiding-getcomputedstyle-in-hot-observer-paths/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/shared-observer-pooling/building-a-shared-resizeobserver-service/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/measuring-variable-height-rows-with-resizeobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/sentinel-based-windowing-for-chat-logs/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/virtual-list-windowing-observers/virtual-grid-windowing-in-two-dimensions/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/weakmap-observer-registries/using-finalizationregistry-to-audit-observer-cleanup/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/weakmap-observer-registries/weakref-callbacks-for-detached-observer-targets/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/performance-optimization-memory-management/weakmap-observer-registries/per-element-state-without-data-attributes/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/building-a-useresizeobserver-hook-in-react/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/sharing-one-observer-across-react-components-with-context/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/observers-in-react-server-components-and-client-boundaries/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/react-observer-hooks/animating-on-visibility-in-react-without-rerenders/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/vue-observer-composables/vue-intersectionobserver-directive-v-intersect/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/vue-observer-composables/vueuse-useintersectionobserver-vs-a-hand-rolled-composable/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/vue-observer-composables/lazy-hydrating-nuxt-components-on-visibility/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/angular-observer-directives/angular-resizeobserver-directive-with-signals/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/angular-observer-directives/running-observer-callbacks-outside-ngzone/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/angular-observer-directives/angular-infinite-scroll-directive-with-intersectionobserver/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/ssr-hydration-observer-safety/deferring-observer-setup-until-after-hydration/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.observerviewport.com/framework-integration-observer-patterns/ssr-hydration-observer-safety/progressive-enhancement-fallbacks-for-observer-driven-ui/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>

