ZAPAnet総合情報局 > ZAPAブログ2.0 > DQ9錬金レシピリアルタイム検索作りました

DQ9錬金レシピリアルタイム検索作りました

2009年08月03日 プログラミングTIPS


ドラゴンクエストIX 星空の守り人」の錬金レシピをリアルタイム検索できる「DQ9錬金レシピリアルタイム検索」を作りました。

DQ9錬金レシピリアルタイム検索」は、入力したデータをサーバーに送信することなく、キーボードからの文字入力中にリアルタイムでレシピ検索され、即座に結果が表示される検索システムです。

通常、検索処理の流れは、
データを入力→サーバーへ送信→サーバーが検索処理→サーバーから結果が返ってくる→ブラウザ上に表示
となる場合が多く、サーバー側での処理やデータ通信に時間がかかります。

その点、今回作成した「DQ9錬金レシピリアルタイム検索」では、サーバーとのデータ通信は初回起動時のみで、検索はクライアント側でリアルタイムに行われます。
よって、高速に錬金レシピデータを検索できるというわけです。

例えば、「まりょくの土」という錬金素材から何を錬金できるか調べたい場合は、「ま」と入力した時点で「ま」の付くデータが全て表示され、「まりょ」と入力した時点で「まりょくの土」が必要になる全ての錬金レシピデータが表示されます(「まりょ」と付くアイテムは、他に存在しないため)。
「まりょくの土」と入力してサーバーへ送信する必要性がないどころか、「まりょ」までで全てのデータが表示されます。
とても速いので、ドラクエ9の錬金レシピデータを検索したいときには、「DQ9錬金レシピリアルタイム検索」を使ってみてください。



最初、この処理を作ろうと考えたときに、ドラゴンクエスト9攻略Wikiのデータを活かしたかったので、Wiki内に組み込むAjaxのプラグインとして検索ページを作ろうとしていました。
ただ、途中まで作って解決できなかったのは、Wikiのデータを文字コードEUC-JPで管理していたために、Ajaxの通信で文字化けしてしまうことでした。
解決策もいろいろ探してみたのですが、ブラウザ依存になってしまうことを恐れ、結局Wikiとは別ページに文字コードUTF-8の検索システムを作りました。
データ自体は、誰でも編集できるWikiのデータをを利用できるように、しっかりと作り込んであります。
おかげで、PCからのみではなく、携帯端末のiPhoneからでもリアルタイム検索がばっちり動きます。
iPhoneのキーボード画面から文字を入力して、キーボードを閉じる前にはもう検索処理が終わっているくらい速く動作しています。
文章を読んでもよくわからないと思いますので、ぜひ「DQ9錬金レシピリアルタイム検索」を試してみてください。