smalljs$molПоиск⌘ KДокументацияПесочницаСравнениеЭкосистемаО проектеRU
ОфлайнGetting StartedВведениеМентальная модельБыстрый стартОт TypeScript к view.treeСтруктура проектаИнструментарийEssentialsУстановкаВьюСостояние и реактивностьРоутингРендерингТестированиеДеплойРешение проблемDataЗагрузка данныхСхемы данныхГипер БазаMoreВитринаИз React, Vue и SvelteСборник рецептовAdvancedПлагиныМетаданные модуляОфлайнGhost-вьюAboutЧастые вопросыКомандаРелизыAPI$mol_button_major$mol_button_minor$mol_string$mol_number$mol_text$mol_paragraph$mol_list$mol_row$mol_link$mol_check$mol_switch$mol_select$mol_scroll$mol_page$mol_pick

Офлайн

Приложение на $mol может продолжать работать без сети — откройте его один раз онлайн, и оно останется пригодным после того, как вы уйдёте в офлайн, вплоть до установки как PWA. Это даёт один встроенный модуль, mol/offline/install, и он не зависит ни от какого слоя данных.

Что он делает

mol/offline/install запускает $mol_offline, который регистрирует service worker (web.js) как кэширующий прокси. Каждый успешный GET статического ресурса — бандла приложения, стилей, картинок — сохраняется в кэше с именем $mol_offline. При следующей загрузке worker отдаёт эти ответы прямо из кэша, поэтому приложение открывается мгновенно и переживает HTTP-ошибку или обрыв соединения, откатываясь на кэшированную копию. Поскольку всё приложение кэшируется и отдаётся так, браузер может предложить установить его как PWA.

Как включить

Добавьте одну строку в *.meta.tree вашего приложения:1include \/mol/offline/installЭтот принудительный include втягивает модуль в бандл, так что его service worker регистрируется как побочный эффект — никакому другому коду не нужно на него ссылаться. О том, как работает include, см. Метаданные модуля.Два требования браузера во время выполнения:Отдавайте по HTTPS (или localhost в разработке) — иначе service worker'ы не запускаются.Предоставьте веб-манифест приложения, чтобы его можно было установить.

Чем это не является

Офлайн-кэширование держит один клиент работающим без сети. Оно не синхронизирует данные между клиентами: запросы со строкой запроса пропускаются насквозь, а не-GET-запросы никогда не кэшируются. Когда нескольким клиентам или устройствам нужно делить одни и те же живые, редактируемые данные — с бесконфликтными слияниями — это уже другая задача, которую решает отдельный проект Гипер База.
Редактировать эту страницу на GitHubБыло полезно?ДаНетНазадМетаданные модуляВперёдGhost-вью
На этой страницеЧто он делаетКак включитьЧем это *не* является
Type to search the documentation.