intersection-observer
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
All of the IntersectionObserver tests feature the following idiom: <script> var observer = new IntersectionObserver(...) function test_function() { var entries = observer.takeRecords(); // Verify entries } onload = function() { observer.observe(target); requestAnimationFrame(() => { setTimeout(() => { setTimeout(test_function); }); }); } Here's the chain of events: - onload - observer.observe() - RAF handler is registered - BeginFrame - RAF handler runs - First setTimeout is registered - UpdateAllLifecyclePhases - IntersectionObserver generates notifications - First setTimeout runs - Second setTimeout is regsitered - Notifications that haven't be taken via takeRecords are delivered - Second setTimeout runs and queues another RAF handler - BeginFrame - RAF handler runs - RAF handler verifies observer notifications via takeRecords or does the setTimeout dance to respond after they've been delivered.