2009-08-04 7 views
0

Je sais que cette question a peut-être été posée plusieurs fois mais j'ai cherché plusieurs jours sans obtenir de réponse satisfaisante.Encore une autre question de champ complet auto ville du monde

Certains sites, comme eventful.com, etc. ont un champ de ville autosuggest avec des villes de partout dans le monde (même les petites villes dans les petits pays de la Tunisie).

Je me demande comment ils l'atteignent. J'ai une liste de pays + ville du monde entier mais c'est 250Mo donc je suppose que les données ne sont pas contenues dans un javascript. Même un appel de base de données sera trop consommateur de ressources. Je suppose

Avez-vous une idée de la manière dont ils y parviennent?

Répondre

4

Ils utilisent AJAX pour envoyer une liste plus courte de correspondances possibles lorsque vous avez tapé les 2-3 premières lettres de la ville que vous voulez. AJAX interroge le serveur, le serveur recherche dans la base de données (je ne vois pas comment 250Mo est cher), puis renvoie les résultats au navigateur, qui les affiche ensuite à l'utilisateur (via JavaScript).

0

Si vous voulez économiser le coût d'aller à la base de données tout le temps cachez ces données comme un fichier plat au format JSON et chargez-le via une requête AJAX. Mettre à jour le fichier à partir de la base de données à chaque fois qu'il change ou tous les jours ou quelque chose comme ça. Remplissez votre liste déroulante à partir des données JSON. Vous pouvez parcourir le tableau et ajouter/supprimer des suggestions lorsque l'utilisateur tape.

+2

Et transférer 1 - 1,5 Mo de suggestions par frappe? Quelle mauvaise idée ... Les suggestions sont basées sur beaucoup plus que sur les touches de l'utilisateur. La géolocalisation et les choix précédents ont tous une part. –

+0

Si vous souhaitez mettre en mémoire cache les données, vous devez utiliser memcached pour stocker les résultats ou, au mieux, stocker quelques centaines des villes les plus recherchées sur le client. –

Questions connexes