Persistent Widgets
Многие сайты не должны быть SPA. Но иногда эта архитектура продиктована ограничениями. Хороший пример — сайт подкаста: статические страницы эпизодов, но есть плеер, состояние которого нужно сохранять между страницами.
Ради сохранения состояния плеера весь сайт создаётся как SPA, хотя в остальном на нём нет такой интерактивности, которая требует реактивного фреймворка. Потому что в веб-платформе нет нормальных способов решения такой задачи.
Но, кажется, способ появится. Инженеры Chromium начали прототипировать идею, предложеную группой WICG (Web Incubator Community Group) под названием Persistent Widgets. Это фрейм, который сохраняется при переходах между страницами.
При переходах между страницами DOM-дерево, состояние JS, кэш GPU, соединение WebSockets или WebRTC и состояние медиа-плеера полностью уничтожаются. Чтобы сохранить состояние, предлагается новый элемент .
Элемент работает как — встраивает внешний виджет, указанный в src. Это может быть AI-чат, бот-ассистент, медиа-плеер, виджет с открытым WebSockets соединением или просто отдельная страница с контентом.
При навигации между страницами внутри одного origin браузер делает следующее:
1. Не уничтожает виджет и его контекст;
2. Пока следующая страница загружается, проверяет, есть ли на ней элемент с такими же значениями атрибутов id и src;
3. Виджет и его контекст переносятся в на следующую страницу без перезагрузки и сброса состояния JS;
4. Внутри виджета выбрасывается событие openerchange.
Виджеты в могут быть размещены только на том же origin, что и основной документ. Виджеты третьих сторон предлагается выстраивать через в . Это одно из ограничений ради безопасности.
Доставка
О нас
В качестве виджетов можно встроить или и они продолжат воспроизведение при переходе между страницами, если соблюдаются условия (same-origin, наличие с одинаковыми id и src).
Ко всему прочему предлагается тесная интеграция с BFCache и Cross-Document View Transitions, а также дополнительные JS API. Persistent Widgets находятся в стадии прототипирования и многое может измениться.
#html
Многие сайты не должны быть SPA. Но иногда эта архитектура продиктована ограничениями. Хороший пример — сайт подкаста: статические страницы эпизодов, но есть плеер, состояние которого нужно сохранять между страницами.
Ради сохранения состояния плеера весь сайт создаётся как SPA, хотя в остальном на нём нет такой интерактивности, которая требует реактивного фреймворка. Потому что в веб-платформе нет нормальных способов решения такой задачи.
Но, кажется, способ появится. Инженеры Chromium начали прототипировать идею, предложеную группой WICG (Web Incubator Community Group) под названием Persistent Widgets. Это фрейм, который сохраняется при переходах между страницами.
Дисклеймер: это обзор раннего предложения новых функций. Синтаксис может измениться в будущем или от функций могут отказаться
При переходах между страницами DOM-дерево, состояние JS, кэш GPU, соединение WebSockets или WebRTC и состояние медиа-плеера полностью уничтожаются. Чтобы сохранить состояние, предлагается новый элемент .
Элемент работает как — встраивает внешний виджет, указанный в src. Это может быть AI-чат, бот-ассистент, медиа-плеер, виджет с открытым WebSockets соединением или просто отдельная страница с контентом.
При навигации между страницами внутри одного origin браузер делает следующее:
1. Не уничтожает виджет и его контекст;
2. Пока следующая страница загружается, проверяет, есть ли на ней элемент с такими же значениями атрибутов id и src;
3. Виджет и его контекст переносятся в на следующую страницу без перезагрузки и сброса состояния JS;
4. Внутри виджета выбрасывается событие openerchange.
Виджеты в могут быть размещены только на том же origin, что и основной документ. Виджеты третьих сторон предлагается выстраивать через в . Это одно из ограничений ради безопасности.
Доставка
О нас
В качестве виджетов можно встроить или и они продолжат воспроизведение при переходе между страницами, если соблюдаются условия (same-origin, наличие с одинаковыми id и src).
Ко всему прочему предлагается тесная интеграция с BFCache и Cross-Document View Transitions, а также дополнительные JS API. Persistent Widgets находятся в стадии прототипирования и многое может измениться.
#html