Je suis en train de mettre en place une fonctionnalité de saisie semi-automatique "Google Suggest" pour la recherche d'étiquettes en utilisant la saisie semi-automatique de jQuery.Quelle est la meilleure façon d'implémenter le service Web pour l'autocomplétion ajax?
Je dois fournir un service Web à jQuery en lui donnant une liste de suggestions basées sur ce que l'utilisateur a tapé. Je vois 2 façons d'implémenter le service Web:
1) il suffit de stocker toutes les variables dans une base de données et de rechercher la base de données en utilisant l'entrée utilisateur comme préfixe. C'est simple, mais je suis préoccupé par la latence.
2) Utiliser un trie en cours de processus pour stocker toutes les étiquettes et rechercher des résultats correspondants. Comme tout sera en cours, je pense que cela aura une latence beaucoup plus faible. Mais il y a plusieurs difficultés: -Quel est le bon moyen d'initialiser le processus de démarrage? Je suppose que je vais stocker les données de l'étiquette dans une base de données et les récupérer et les transformer en un trie quand je commence le processus. Mais je ne suis pas sûr de comment. J'utilise Python/Django. -Lorsqu'un nouveau tag est créé par un utilisateur, je dois insérer le nouveau tag dans le fichier. Mais disons que j'ai 5 processus Django et donc 5 essais, comment puis-je dire aux 4 autres essais qu'ils ont besoin d'insérer un nouveau tag? -Comment s'assurer que la trie est threadsafe car mes processus Django seront threadés (j'utilise mod_wsgi). Ou n'ai-je pas à me soucier de threadsafty à cause du GIL de Python? -De toute façon, je peux stocker la fréquence d'utilisation du tag dans le trie aussi? Comment puis-je savoir quand la chaîne de la balise se termine et quand la fréquence commence-t-elle? si je stocke apple213 dans le trie, est-ce "apple" avec la fréquence 213 ou est-ce "apple2" avec la fréquence 13?
Une aide sur les problèmes ci-dessus ou des suggestions sur une approche différente serait vraiment appréciée.
combien de tags pensez-vous avoir? – Josh
Parlez-vous d'un service Web où vous utiliseriez quelque chose comme SOAP? Si c'est le cas, j'éviterais d'utiliser un service web pour cela car cela ajouterait une couche supplémentaire de complexité et causerait plus de latence. Pour la saisie semi-automatique, je voudrais envoyer des requêtes AJAX au serveur et interroger la base de données pour des suggestions ou des requêtes à partir des résultats de la base de données en cache si possible. – rich
Toutes les étiquettes seraient créées par l'utilisateur, il est donc difficile de dire combien il y en aura. Cela dépend vraiment de la popularité de mon site – Continuation