123456789101112131415161718192021222324252627 |
- let clean = true;
- const frames = [];
- /**
- * Schedule a task to run in an animation frame on its own
- * This is useful for heavy tasks that may cause jank if all ran together
- */
- export function requestNewFrame(cb) {
- if (!clean || frames.length) {
- frames.push(cb);
- run();
- } else {
- clean = false;
- cb();
- run();
- }
- }
- let raf = -1;
- function run() {
- cancelAnimationFrame(raf);
- raf = requestAnimationFrame(() => {
- const frame = frames.shift();
- if (frame) frame();
- if (frames.length) run();else clean = true;
- });
- }
- //# sourceMappingURL=requestNewFrame.mjs.map
|