2009-07-18 5 views
0

Je développe un formulaire en utilisant Zend Framework et en utilisant dojo. Une partie du formulaire collecte les coordonnées et l'adresse d'un utilisateur. Le problème que je suis en train d'utiliser le composant dojo FilteringSelect ou ComboBox pour sélectionner la ville/ville. J'ai dans ma base de données une liste de 40K + noms de ville/ville.Quelle est la taille maximale des données JSON pouvant être chargée par Dojo ComboBox/Filtering Select Component?

J'ai essayé d'utiliser le composant Dojo pour récupérer cette liste, mais je crains que les noms de ville 40K ne soient trop grands. Je ne veux pas utiliser manuellement un composant html standard car je suis sûr que tout ce texte supplémentaire dans la page rendrait mon formulaire un cauchemar à charger.

donc je suppose que ma question est en 2 parties:

  1. Quelle est la taille des données JSON maximum que je peux raisonnablement attendre d'utiliser, comme je pense que ce que je me sers est trop grand.
  2. Quelle serait la meilleure façon de permettre aux utilisateurs de sélectionner l'un de ces noms de ville dans le formulaire?

Merci d'avance.

Répondre

0

Youch, c'est une grande liste de points de données. Je dirais que cela dépend vraiment des navigateurs et des paramètres de l'utilisateur. Et la tolérance pour l'attente.

Si vous êtes capable, je dirais de mettre les données derrière un service Web et d'utiliser le dojox.data.QueryReadStore. Cette page a même un exemple d'utilisation d'un service pour interroger les états en utilisant un ComboBox.

<script> 
    dojo.require("dojox.data.QueryReadStore"); 
    dojo.require("dijit.form.ComboBox"); 
</script> 
.... 
<b>Combo lookup of states through QueryReadStore</b><br> 
<div dojoType="dojox.data.QueryReadStore" url="/moin_static163/js/dojo/trunk/release/dojo/dojox/data/tests/stores/QueryReadStore.php" jsId="comboStore"></div> 
<div dojoType="dijit.form.ComboBox" store="comboStore" searchAttr="name" pageSize="100"></div> 

QueryReadStore.php est disponible en svn afin que vous puissiez même regarder ce qu'ils ont fait côté serveur.

+0

Merci bien que la performance n'a pas été aussi bonne que j'avais espéré. Je vais devoir trouver un autre moyen de filtrer cette entrée –

Questions connexes