2009-11-07 5 views
1

J'ai un certain nombre de sites Web clients utilisés depuis plus de 4 ans. Une des pages sur les deux sites contient des listes déroulantes qui contiennent maintenant plus de 3000 articles. J'ai essayé des solutions initiales à ce problème en ajoutant de nouvelles pages aux deux sites où un site utilise silverlight et l'autre utilise ajax.Cache de données client dans un stockage isolé - asp.net - jquery - ajax - silverlight

La page silverlight est actuellement plus performante que la page ajax une fois que le contrôle a été chargé, mais nécessite que l'utilisateur dispose de Silverlight ou des autorisations pour l'installer. La version ajax a des problèmes qu'elle envoie le nécessite encore un téléchargement initial de toutes les données pour compléter les listes déroulantes lorsque le site est chargé pour la première fois.

La version ajax utilise toujours l'état d'affichage et envoie 400k + au serveur à chaque requête.

Ce que je voudrais faire est d'utiliser la version ajax mais cache les données déroulantes sur le client et ne télécharge les données qu'une fois par jour.

Si je sauvegarde les données en utilisant asp.net dans un stockage isolé (j'ai trié cette partie), est-il possible d'y accéder en utilisant le code côté client tel que jquery?

Répondre

2

Personnellement, il est impossible d'utiliser une liste déroulante pour plus de 3000 éléments. Non seulement il ya un problème avec le transfert de données, mais il est également difficile pour tout utilisateur de faire défiler ces nombreux éléments pour trouver l'option dont ils ont besoin.

Avez-vous envisagé quelque chose comme ceci:

http://jquery.bassistance.de/autocomplete/demo/

Vous avez une zone de texte qui dit quelque chose comme « commencer à taper » ... la deuxième l'utilisateur tape la première lettre de ce qu'ils recherchent, une requête ajax est faite en saisissant toutes les entrées qui commencent par cette lettre. Etant donné qu'il y a 26 lettres dans l'alphabet, vous obtiendrez en moyenne 4% des données, soit 120 entrées au lieu de 3000 !! De même que les utilisateurs apprennent à connaître votre système, ils peuvent taper de plus en plus de lettres et trouver ce qu'ils recherchent beaucoup plus rapidement. Beats défilant à travers une liste de 3000 entrées, et rend votre application plus facile à utiliser, plus réactif et plus convivial!

+0

C'est exactement l'itinéraire que j'avais pensé descendre même si j'ai une certaine résistance de la part du client et donc de la question initiale. Le système traite environ 6000 enregistrements par jour et a lentement ajouté aux données affichées dans les listes déroulantes depuis que j'ai pris en charge le développement. La quantité de données affichées dépend des droits des utilisateurs, de sorte que certains utilisateurs ne peuvent voir que 100 éléments. J'avais précédemment gzipped tout pour réduire la taille de transfert de données mais avec le nombre d'utilisateurs même la bande passante devient un problème. –

+0

Juste vérifié le lien et je pense que cela va résoudre mon problème –

+0

Pas de problème! heureux d'être utile, j'ai utilisé ce plugin avec succès pour une recherche d'ami de style facebook (voir la recherche d'image à distance sur la page de démonstration), merci de me pousser plus de 100 points - n'oubliez pas de marquer vos réponses et de les accepter :) – reach4thelasers

Questions connexes