以下の内容はhttps://let.blog.jp/tag/SPAより取得しました。


App History API
Chrome の開発中の機能を見てるとこんなのがあった
https://wicg.github.io/app-history/

window.appHistory が追加されるみたい
window.history よりも SPA ページを作りやすくするものだとか
過去の履歴を取得できたり navigate メソッドでページ遷移できる
AppHistory 自体が EventTarget を継承していて navigate などのイベントを受け取れる

現状の history は history といいつつ過去の状態は見れないし pushState と replaceState で URL 書き換えるくらい
戻る/進むのイベントは window の popstate イベントだからページの更新処理は pushState や replaceState を呼び出したところと popstate イベントの複数箇所書かないといけなくて不便だった
このあたりが解決するのはよさそう
ログインと SPA
ログイン前後でもページの読み込みはしない SPA にしようとしてるのを見て そこ SPA にする必要あるの?って思ってた
ログイン成功時にログイン済みユーザ用 SPA に切り替えればいいじゃん と言う感じ
でも考えてみるとログインしなくても色々見えるサービスってけっこうある (例えば StackOverflow とか Github とか)
自分の場合 そういうのを作ることが全くなくて ログイン機能があるものならログインするまではログイン画面くらいしか見えないものばかり
そんなのだとログイン画面は単体 HTML で済む程度
だけど 未ログインでも色々見えるのならログイン前後で共通コード多いし ひとつの SPA アプリのほうが良いかなと思った
SPA じゃないけど SPA ぽくしたいとき
SPA になってないけど ページのロードじゃなくて SPA みたいな遷移したいとき
行き先の HTML を fetch して document.write で全書き換えすれば行けるんじゃないかなって思った

条件として customElements.define だったり setInterval だったりグローバルに影響することはいっさいしないこと
古い DOM が消えて GC されれば完全に消えるような作りが必要

URL は history.push で書き換えて back したときに元の URL の HTML を再 fetch して document.write する
メモリ的に余裕あれば捨てないでおいて back のときにもとに戻せば bfcache (ページバックで戻ったときに JavaScript で処理したものも残ってる) になっていい感じ?

暇な時に試してみよう



以上の内容はhttps://let.blog.jp/tag/SPAより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14