J'utilise le plugin de saisie semi-automatique de JQuery, mais ce n'est pas rapide et ce n'est pas non plus pertinent pour mon site. Je veux une saisie semi-automatique comme le www.hotels.com. Comment puis-je réaliser ce type de saisie semi-automatique? Y a-t-il des plugins pour ça?Auto-complétion rapide pour les listes déroulantes
Répondre
Hotels.com utilise une requête/réponse JSON personnalisée. Si vous ouvrez Firebug, vous verrez l'appel sortant:
Cet appel est immédiatement tiré sur keyup, et renvoie les données JSON:
Il n'y a rien particulièrement envie d'aller sur sinon, juste un serveur puissant avec une recherche précise dans la base de données. Cependant, il n'y a pas de saisie semi-automatique en Javascript.
Ainsi, vous préférez un filtre déroulant au lieu de la saisie semi-automatique? Par exemple. Lorsque vous tapez "foo", vous voulez afficher "foobar", "afooba" et "bazfoo" au lieu de seulement les matches de départ comme "foobar" et "foobaz"?
Si oui, alors je peux suggérer le Quickselect en utilisant Quicksilver algo ou Flexselect en utilisant Liquidmetal algo. Pour ce qui en vaut la peine, j'ai joué avec les deux il y a environ un an et j'ai décidé de continuer avec le dernier, car il était préférable de le rendre compatible avec les autres plugins jQuery (par exemple Validator et qTip).
Qu'y a-t-il sur www.hotels.com? Quelles données voulez-vous projeter dans la saisie semi-automatique? D'où proviendraient ces données? Vous devez répondre à ces questions avant de penser aux détails de mise en œuvre.
Les bonnes choses coûtent de l'argent. Dans cet exercice de référence particulier que vous faites, si vous regardez assez proche, vous serez en mesure de voir que hotels.com utilise le framework Yahoo JS et différentes fonctions personnalisées ...
80% du travail en autocomplétion est fait dans le backend. Le backend doit être vraiment très rapide pour renvoyer les réponses aux requêtes. Je doute que jquery soit votre problème. Utilisez le panneau 'net' de firebug pour comprendre le temps d'aller-retour et la latence du serveur. Résolvez ce problème. Le reste est facile. FWIW, J'ai eu beaucoup de chance en utilisant la suggestion de GWT qui va directement dans une base de données Oracle (je me suis débarrassé de la majeure partie de la couche Web autre qu'un passthrough très fin pour obtenir la réactivité que je recherchais). Réponse de retour à l'utilisateur dans approximativement 50ms
Je devine que vous devriez le construire à partir de zéro. Vous pouvez utiliser Firebug ou Charles pour voir à quoi ressemblent la requête ajax et les corps de réponse afin d'émuler le comportement, mais je doute sérieusement qu'il existe un plugin pour quelque chose de spécialisé. Mais, comme ma femme me le rappelle souvent, je suis très capable d'avoir tort. – inkedmn
Comment pouvons-nous dire ce qui est et ce qui n'est pas pertinent pour votre site sans savoir ce que vous voulez obtenir. "Je le veux comme ça" est une description extrêmement pauvre de votre problème. – spender
+1 pour @spender –