Ajaxを使った郵便番号と住所変換です。HTTPサーバのみでサーバサイド処理が不要なバージョンです。
http://www.kawa.net/works/ajax/ajaxzip2/ajaxzip2.html
静的なコンテンツのみであれば、サーバのリソースを節約する事が出来る為、私も業務で同じ手法を取り入れました。私が行った実装方法は、郵便番号の先頭4桁をファイル名にします。例えば郵便番号が012-3456なら、0123.jsonというファイルをサーバに配置します。
次に0123.jsonの中には、
{
"3" : {
"4" : {
"6" : ["XX県","XX市","字XXX"],
"7" : ["XX県","XX市","字XXX"],
"8" : ["XX県","XX市","字XXX"]}
},
"5" : {
"6" : ["XX県","XX市","字XXX"],
"7" : ["XX県","XX市","字XXX"],
"8" : ["XX県","XX市","字XXX"]}
}
},
"4" : {
"4" : {
"6" : ["XX県","XX市","字XXX"],
"7" : ["XX県","XX市","字XXX"],
"8" : ["XX県","XX市","字XXX"]}
},
"5" : {
"6" : ["XX県","XX市","字XXX"],
"7" : ["XX県","XX市","字XXX"],
"8" : ["XX県","XX市","字XXX"]}
}
}
}
のように記述し、7桁確定したら先頭4桁でファイルを取得してレスポンスに対してevalを行います。結果の各プロトタイプを参照すれば、住所が取得できるわけです。Ajaxによる取得・評価が1回と、プロトタイプの参照が3回のみで、検索といえるような処理がないためかなり高速です。
郵政のサイトからのダウンロード、アーカイブの解凍、jsonファイルの生成を月1回自動で行うスクリプトを書くと、常に自動的に最新の住所を保つ事もできます。
サーバの特性を考慮したり、インクリメンタルなサーチを提供する場合、桁の扱い方を適切に変えるといいと思います。殆ど変化のないマスタ情報で他のテーブルと連携しないようなものは、JSON形式のファイルをクライアントに読ませるの方が楽ですね。例えば和暦とか。