},0318:314~318行目のgetTokenは,トークン範囲を計算し,そこからトークンを切り出して返します。nextTokenPos]);0334:}0335:});0336:319~336行目のgetTokenBoundsを見ていきましょう。これは,キャレットの位置をおおまかに求めて,切り出すべきトークンの範囲を返す関数です。返り値は[a,b]の形で,aはトークンの範囲の始点,bはその終点を表す整数です。入力エリアの内容が空かスペースだけのときはただちに[-1,0]を返します。options.tokensは,トークンの区切り文字が入っている配列です。デフォルトでは'\n'が入っています。320行目では,次のようになっていて,無駄な処理を省くようになっています。前回の内容;322行目では,次のようになっています。[-1,0];323行目では,getFirstDifferencePosで,以前の内容と,現在の内容を見比べて,内容が変わりはじめた位置を求めています。324~332行目では,トークンの区切り文字を全て試して,区切りの幅がもっとも短くなるように範囲を計算しています。};0344:337~344行目のgetFirstDifferencePosは,以前の内容と,現在の内容を見比べて,内容が変わりはじめた位置を返します。以上でAutocompleter.Baseは終わりです。次に,Ajaxでサーバに候補を問い合わせるAjax.Autocompleterについて解説します。},0353:345~353行目は,initializeで,通常の初期化のほか,Ajax.Autocompleter特有のオプションを追加します。348行目のoptions.asynchronousは,Ajaxを非同期で行うオプションです。349行目のoptions.onCompleteは,Ajaxの完了時にコールバックする関数のオプションです。350行目のoptions.defaultParamsは,追加するクエリパラメータのオプションです。351行目のurlは,問い合わせるサーバのURLです。},0368:354~368行目のgetUpdatedChoicesは,トークンを得て,Ajaxでサーバに候補を問い合わせる関数です。355行目でインジケータを表示し,357行目でAjaxクエリパラメータを,まずはparamName=fooと作ります。360行目でライブラリの利用者がクエリパラメータを自由に編集できるように,options.callbackに入力エリアとクエリパラメータを渡しています。364行目でクエリパラメータにdefaultParamsをさらに追加します。366行目でAjaxで候補を問い合わせます。});0373:369~373行目のonCompleteは,Ajaxの完了時にサーバからの返答を処理する関数です。them.このコメント文を日本語に訳すと以下のとおりです。ローカルな配列の入力補完。補完したい語の配列をページに埋め込むことで,いちいちサーバにAjaxで問い合わせずに済むようになります(Ajaxは場合によっては,かなり遅いことがあるからです⁠)⁠。コンストラクタは4つの引数をとります。最初の2つは,いつもどおり,監視するテキストボックスのidと,候補メニューを表示するメニューのidです。3番めは,補完したい語の配列,4番めは,オプションです。-候補をいくつまで示すか。-もしfalseなら,語の配列にある文字列の中で,入力されたテキストと前方一致するものだけが,候補になります。デフォルトではtrueで,この場合,配列の語の文字列について,文字列中の単語ごとに前方一致が探されます。文字列の全体について探したければ,さらにfullSearchオプションをtrueにしてください(デフォルトではoff⁠)⁠。-配列の語の文字列の全体を検索します。-単語別一致検索が動くのに必要な入力の文字数(minCharsと違って,検索の方法に関わらず何文字必要かです⁠)⁠。-大文字小文字を無視して補完するかどうか。デフォルトはtrue。カスタマイズした関数を'selector'オプションに渡すことで,自前の補完ロジックを使うこともできます。その場合は,上記のオプションは扱われません(あなたがサポートすれば別ですが)。学部生のときにSchemeの素晴らしさを知ったのをきっかけに,関数型言語の世界へ。JavaScriptに,ブラウザからすぐに試せる関数型言語としての魅力と将来性を感じている。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。