こんばんわ、加藤です。
前に作ったjsAsyncAddressというまぁ平たく言うとSWFアドレスっぽいことをする単体のJSライブラリで、自分が使うために汎用っぽくシンプルなAJAXアプリ用URLクエリの取得とかセットをするライブラリをがあったのですが、手抜き実装で文字列しかやりとり出来なかったのを配列を対応にすることで、複数のクエリをセットすることができるようになりました!
http://***.com/jsAsyncAddress.html#/arg01/arg02/arg03/
という形式でURLが生成され、上記の場合はarg01,arg02,arg03という3つの値が配列で帰ってきたりします。
たとえばキー入力に反応して検索結果がリアルタイムで返ってくるような非同期通信検索フォームとかで検索結果ページを作る際なんかに使えますね。
サンプルは詳細ページで!
■サンプル
サンプルページ
インプットエリアに文字を入力するとURLクエリにセットします。”,”区切りで配列に分解します。
入力動作に対してリアルタイムでURLを書き換えるのでなんだか。。。
サンプルページ(サンプルクエリ付き)
このように非同期でページ生成されているページの個別URLを発行することができます。
今回は珍しくJINGで動作イメージのキャプチャとか撮って見ました。
Firefoxで入力された結果画面をChromに無事持っていけていることがわかるかと思います。
ということで中身の説明はしますがシンプルなのでメソッドの説明のみで。
注意点は
個人的な好みで、一つなら文字列で返って来ますが複数のクエリがセットされていた場合は配列で返って来ます。気をつけてください。
現状シンプルなものなので一つ追加とか一つ削除っていうのはないのでまるっと取ってきて自分でパースする感じですが、そのうちそんな便利メソッドを追加してもいいですね。
実際の使い方は先ほどのサンプルページのソースを見るのが早いと思います。
■メソッド
シンプルな実装なのでメソッドは4つ。そのうち使うのは3つ。
trim
urlクエリを剥がして#/だけにします
setQuery
URLにクエリをセットします。通常はqueryメソッドを介して使用するので意識する必要のないメソッドです。
query
引数がない場合はURLクエリを返す(一つなら文字列、複数なら配列で返す)
引数が合った場合はURLクエリにセットする(setQueryにまわす)
引数が配列だった場合は順番にクエリにセットする
uri
プレーンなURLを返します。直接URLの加工はしないで文字列を返すだけです。
という感じ。
先ほどのサンプルページのHTMLに直接サンプルコードを書いてあるので見てみてください。
以上です!