2009-08-04 14 views
0

私はこの質問が何度か尋ねられたかもしれないことを知っていますが、私は満足のいく答えを得ることなく数日間検索しています。もう1つの世界都市オートコンプリートフィールドの質問

eventful.comなどのサイトには、世界各地の都市(チュニジアの小さな国の小さな都市でさえ)との自動対立都市フィールドがあります。

私は彼らがどのようにそれを達成しているのだろうか。私は世界中からの国+都市のテキストリストを持っていますが、250Moなので、データはJavaScriptには含まれていないと思います。データベース呼び出しでさえ、消費量が多いので、消費量が多いです。

これを達成する方法について考えていますか?

答えて

4

あなたが望む都市の最初の2〜3文字を入力すると、AJAXを使用して候補のリストを短く送信します。

AJAXがサーバーに照会すると、サーバーはデータベースを検索して(私には250Moの高価は表示されません)、ブラウザに結果を返し、JavaScriptを介してユーザーに表示します。

0

いつもデータベースに行くコストを節約したい場合は、このデータをJSON形式のフラットファイルとしてキャッシュし、AJAXリクエストを介してロードします。変更されたときや毎日のようなときにいつでもdbからファイルを更新してください。 JSONデータからドロップダウンを入力します。配列をループして、ユーザーの入力時に提案を追加/削除できます。

+2

そして、キーストロークあたり1〜1.5MBの提案を転送しますか?どのような悪い考え...提案は、ユーザーがキー入力したキーストローク以上の方法に基づいています。ジオロケーションと以前の選択はすべてその中に含まれています。 –

+0

データをキャッシュする場合は、結果を保存するためにmemcachedを使用するか、クライアントで最も一般的に検索された都市数百を保存する必要があります。 –