2011-09-30 1 views
0

Si vous avez 1000k lignes de données, il ressemble à code postal/ville/état, si vous tapez 95101 dans le champ de texte du site Web, il montrera san jose, ca; et complétez la saisie semi-automatique du champ de texte.Comment stocker une grande source de données tout en utilisant jQuery aotocomplete dans le frontal?

Quel type de structure de données choisissez-vous pour stocker l'ensemble du code postal/ville/état aux États-Unis?

Peut-être 1000k lignes. Si je charge la source de données au niveau local, cela semble perdre du temps. Si j'écris la source de données dans le tableau de JavaScript, le tableau est trop grand, des idées?

Répondre

0

Vous pouvez utiliser jQuery ui autocomplete avec une source de données à distance - http://jqueryui.com/demos/autocomplete/#remote

Extrait de là:

La source de données est un script côté serveur qui renvoie les données JSON, spécifié via une simple URL pour l'option source. En outre, l'option minLength est définie sur 2 pour éviter les requêtes qui renverraient trop de résultats et l'événement select est utilisé pour afficher certains commentaires.

Exemple de code

à partir de là:

$(function() { 
    $("#birds").autocomplete({ 
     source: "search.php", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }); 
}); 
+0

Si j'utilise JSON, je dois télécharger 1000k lignes à chaque fois? – Judy

+0

Non. Le service Web que vous appelez prend un paramètre (il peut s'agir des deux premiers chiffres du code postal et filtrer les résultats uniquement pour ceux qui correspondent). Pourquoi ne regardez-vous pas le lien dans la réponse? –

1

Voulez-vous dire 1 million de lignes?

Utilisez une source de données distante pour faire la recherche sur le serveur sur seulement retourner un petit nombre de lignes.

par exemple jQuery autocomplete remote example

$("#birds").autocomplete({ 
     source: "search.php", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }); 
0

Une telle quantité énorme de données, je vous recommande l'utilisation d'appel à distance au lieu de stocker dans le tableau local ou objet. Mais je crois que stocker dans l'objet est une bonne option par rapport à un tableau car il crée un hachage.

Questions connexes