Hatena::Groupsubtech

#生存戦略 、それは

-> 10 { 12 / 25 }

AutoPatchWork でページ継ぎ足し時に replaceState で URL を書き換える

10:01 | はてなブックマーク - AutoPatchWork でページ継ぎ足し時に replaceState で URL を書き換える - #生存戦略 、それは

AutoPagerize 系でページ継ぎ足し時に history.replaceState() で URL 書き換えると使い勝手良いのかなぁ、と思って AutoPatchWork に実装してみた(Firefox 3.6 じゃまだ replaceState 使えないので…)。設定画面で有効にすることで使えます。

実装的にはページの継ぎ足し時に replaceState に継ぎ足した URL を突っ込む、ただ突っ込むと大本の URL に history.back() で戻れなくなるので継ぎ足し時の最初の一回だけ history.pushState() で location.hash の値も突っ込んでます。

実際に使い勝手がよいかどうかは常用してみて考える。

os0xos0x2010/12/25 12:05>AutoPatchWork
ページ継ぎ足したときに書き換えると、継ぎ足してからやっぱり上に戻ってクリックしたときにズレてしまうのが悩ましいところですね。
(お気づきかと思いますが) target=_blank指定のチェックを外したときは、AutoPatchWork.DOMNodeInsertedで継ぎ足したHTML内のリンクに継ぎ足したURLをpushStateするクリックイベントを追加しているので、遷移先からページを戻ったときにクリックしたリンクがあるページに戻れるようにしています(わかりにくい…)。
ただ、ページを戻ったときのスクロール位置が大きくズレてしまうのがイマイチでどうしようかなと悩んでいるところでした。
いっそのこと、XHRで取得したHTMLをsessionStorageに保存しておいて、それを使って継ぎ足し後のページを復元するとかってのもありかもしれないですね。

secondlifesecondlife2010/12/25 19:12どもども。
今日2時間ぐらい使った感じでは、一覧ページをたどっていくとき、リロードしても呼んだ箇所から再現できる(ページ継ぎ足しすぎて重くなったときなど)がかんたんにできるのが割と便利でした。
ただ Permalink なページでどんどん URL が変わっていってしまうのは微妙な感じですね…

> いっそのこと、XHRで取得したHTMLをsessionStorageに保存しておいて、それを使って継ぎ足し後のページを復元するとかってのもありかもしれないですね。
おー、かっこいい。遷移前に見ていたところがまんま再現できますね。