Skip to content

docs: デモにタイルキャッシュ(Weiwudi の Service Worker)の節を足す - #163

Merged
kochizufan merged 4 commits into
masterfrom
feat/demo-tile-cache
Nov 9, 2026
Merged

kochizufan merged 4 commits into
masterfrom
feat/demo-tile-cache

Conversation

@kochizufan

Copy link
Copy Markdown
Member

症状

デモがタイルキャッシュ系の API(getMapTileCacheStatsAsync・fetchAllMapTileCacheAsync・cancelMapTileCacheAsync・clearMapTileCacheAsync など)を 1 つも見せていませんでした。

直し方

  • Weiwudi の Service Worker を Vite でまとめ、デモの /weiwudi-sw.js として配ります(入口は demo/weiwudi-sw-entry.ts の 1 行。SW 本体の複製は追跡せず、依存の追加もありません。ライブラリのビルドには入りません)。
  • デモ起動時に Service Worker を 1 回登録してから enableCache: true で MaplatApp を作ります。
  • 操作パネルに節「キャッシュ」を追加: 状態・統計(保存済みバイト数・取得済み/全体のタイル数)・「全タイルを取得」(進捗・中止)・「キャッシュを消す」。全体のタイル数が分からない/3000 枚を超える地図では一括取得を止め、理由を出します。
  • ?cache=0、または Service Worker が使えない環境では、キャッシュ無しで起動して理由を節に出します。
  • Core は取得・中止・消去の失敗を握りつぶすため、公開 API の範囲で「進んでいない(30 秒)」「中止の応答がない」「消去されていない」を見張り、ボタンが必ず戻るようにしています(Core は変更していません)。
  • デモを開く既存の e2e は cache=0 を付けて従来どおりの経路を通します(検査の中身は変更なし)。

確かめ方

  • 新しい e2e/demo-cache.spec.ts(14 件): 実 Service Worker・盛岡の手元のタイルで取得・中止・消去・再生成、?cache=0・SW 無し・取得できない地図、page.clock と関数の差し替えで失敗の見え方を決定的に再現。
  • 手元で vitest・typecheck・build(verify:common 含む)・build:demo と e2e 全件を実行(e2e は 96 件中 95 件緑・1 件は単独実行で緑。下記)。

補足

  • 手で見る手順: pnpm run dev → http://localhost:5175/?region=morioka → 「全タイルを取得」→ 再読み込み → 「キャッシュを消す」。?cache=0 と対比できます。
  • 全件実行で outside-pois.spec.ts の「背面が GL(MapLibre)のとき」が 1 回だけ赤くなりました(デモも Service Worker も使わない /e2e/test.html の試験)。同じ試験は単独で 3 回、ファイルごと 1 回とも緑でした。

🤖 Generated with Claude Code

kochizufan and others added 4 commits November 9, 2026 14:20
実 Service Worker での取得・中止・消去・再生成と、キャッシュ無しの経路、
Core が失敗を握りつぶす状況(進まない・中止の応答なし・消去されない)を試験する。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Weiwudi の Service Worker を Vite でまとめ、デモの /weiwudi-sw.js として配る(ライブラリのビルドには入れない)
- 節「キャッシュ」: 状態・統計・全タイルの取得と中止・キャッシュの消去
- ?cache=0 または Service Worker を使えない環境ではキャッシュ無しで起動し、理由を節に出す
- Core が取得・中止・消去の失敗を握りつぶすため、進まない取得や応答の無い中止を見張ってボタンを戻す

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 統計とサイズの読み取りを 3 秒で打ち切る(SW が詰まると Core の Promise は解決しない)
- 消去の確認は読み取りの回数でなく経過時間(3 秒)で打ち切り、ボタンを必ず戻す
- 地図を切り替えたら、総数を読み直すまで一括取得の可否を「分からない」に戻す
- e2e: 読み取りが解決しない場合の試験を足し、試験名から設計内の番号を外す。中止の試験は cancel の呼び出しを測る

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kochizufan
kochizufan marked this pull request as ready for review November 9, 2026 05:54
@kochizufan
kochizufan merged commit eb4d43a into master Nov 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant