入力補完を行うためのライブラリを作ってみた

                                                                                                            • -

2006/01/24:ライセンスについて追記しました。

                                                                                                            • -

JavaScriptで入力補完を(割と)手軽に行えるようなライブラリを作ってみました。

入力補完というと、Google Suggestのように入力内容から逐次サーバと非同期通信し、その結果を表示するといった方式(Ajax)がぱっと思いつきますが、このライブラリでは、補完候補の全件をあらかじめクライアント側で保持し、その後はJavaScriptを使って検索を行う方式をとってます。

下記を読んでなければ、こんなことしようとは思わず、何でもAjaxでやろうとして、サーバの負荷上げていたと思います。

ma.laさんの記事はいつも勉強になります。ありがとうございます。

作ってみて、気になった点を下記に挙げておきます。

  • 当初、keyupイベントを拾って検索を行うようにしていましたが、検索データ量が多くなった場合に、処理が追いつかなくなったので、一定周期で入力内容を監視(setTimeoutを繰り返し)し、差分があった時のみ検索するようにしました。(データ量が少なければ、keyupイベントでも十分だと思います)
  • 入力フォームからフォーカスが移動した際に、その移動先が補完候補のリスト以外の場合、補完候補を消すようにしていますが、いまいちしっくりきません。 入力フォームのblurイベントでsetTimeoutをしかけて、補完候補のリストに対してのclickイベントが発生しなかったら消す!みたいにしているのですが、、もっといい方法がありそうな気がしています。

ライセンスについては、制約がほとんど無い「クリエイティブ・コモンズ 帰属 2.1 日本」とします。

Bloglinesのフィードエラーが解消

Bloglinesに問い合わせてみた件の続きで…
今日見たら、該当のフィードの登録がなぜか勝手に解除されていたので、もう一度同じフィードを登録したところ、記事が読み込まれるようになりました!
が、過去の記事は消えているようです… Bloglinesで管理している該当のフィードのデータをリフレッシュしたようですね。
消すなら消すで一言欲し気がするけど、まぁフリーだし、本当に大切なデータは自分で守らなければならないですね。