Ajaxを活用して開発されたWebアプリケーションは、サーバとの通信をWebブラウザのページ読み込み処理とは異なる方法で(非同期で)行うため、基本的にWebブラウザのナビゲーションバーでは制御できない。つまり、Ajax機能を活用して再描画された内容は「戻る」ボタンでは戻れないということだ。

これは便利でもあり不便もである。特定の操作においては戻るボタンで戻れた方が扱いやすいこともある。Ajaxアプリケーションにおいてこうした戻るボタンとの関連付けを行うためのライブラリや実装方法はいくつかあるが、ここではAndrew Mattie氏によって公開されたdsHistoryを紹介しておきたい。

Andrew Mattie氏は15日(米国時間)、自身のブログにおいて「Presenting dsHistory: Another Way to Revisit the Past」と題したブログを公開。YUI Browser History ManagerやDojoで使われているヒストリ機能、各種のテクニック/スクリプトを説明したうえで、Dojoのbind機能に類似させて開発した自身のプロダクト「dsHistory」を紹介している。

公開されたdsHistory version 0.9は、それ単体で動作するJavaScriptライブラリで、圧縮した状態で7KBしかなく、そのまま簡単に扱えるという特徴がある。先ほど説明したとおり、JavaScriptライブラリやAjaxフレームワークにおいて戻るボタンを活用するためのライブラリやテクニックはいくつかあり、標準化されていないというの現状だ。使用する際にはそれぞれのライブラリ/テクニックを学習する必要があるわけだが、一筋縄ではいかないものが多い。しかし、dsHistoryは簡単なデモが提供されており、なおかつそれ単体で扱えるので学びやすいという利点がある。

興味があるデベロッパはWebサイトで公開されているデモンストレーションを試してからdsHistoryのソースコードをチェックしてほしい。デモでは、「Add Function」リンクをクリックするとJavaScriptの機能を使ったコンテンツの編集が行われ、ブラウザの戻るボタンを押すとアンドゥが実行される。

dsHistoryデモンストレーション - JavaScriptによる操作を戻るボタンでアンドゥできる