11552 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je voudrais réaliser une zone de texte / liste déroulante comme la barre de recherche de google, c'est-à-dire qu'à chaque fois que je tape une lettre dans cette zone de texte je veux aller chercher les noms correspondants dans une base de données (comportant 1000 noms au maximum) et les afficher.

Ma question est un souci d'optimisation. Est-ce mieux de faire une requête ajax à chaque fois qu'on tape une nouvelle lettre, ou vaut-il mieux stocker tous les noms (dans une grosse variable javascript) sur le chargement de la page et ensuite utiliser cette variable pour afficher les noms correspondants ?

En espérant avoir été clair.

Merci d'avance Smiley cligne ,

Romain
Modifié par rom117 (24 Aug 2011 - 21:57)
Hello,

La solution en ajax me parait beaucoup plus propre parce qu'avec ta grosse variable javascript tu vas charger énormément d'information qui ne serviront pas. Par contre avec un requête ajax, tu ne récupères que ce dont tu as besoin.
Bonsoir à toutes et à tous,

la question que l'on doit se poser concerne ta liste de nom. Est-ce que tu auras toujours la même liste de noms ou bien elle change au fil du temps ?

Si elle change au fil du temps alors il vaut mieux utiliser AJAX.

Si elle est toujours la même, un programme en JavaScript permettra d'éviter de faire des échanges entre le client et le serveur et en plus tu auras l'information immédiatement.

Mais maintenant la question concerne aussi la volumétrie à traiter. Mille noms correspond à une volumétrie assez importante. Donc AJAX est aussi conseillé.

@+
Modifié par Artemus24 (25 Aug 2011 - 04:09)
Bonjour.

Cette liste contient les noms et prénoms d'étudiants. Elle peut changer au cours du temps car la page concernée affiche et permet de modifier les noms / coordonnées de ces étudiants. Mais une fois un étudiant modifié, on ne fait pas tout de suite après une recherche de cet étudiant dans la liste déroulante. Donc la liste n'a pas besoin d'être modifiée "en direct".

Pour la volumétrie, 1000 c'est vraiment le maximum. En réalité il devrait y en avoir 200 ou 300.

Malgré ça, je pense comme vous qu'Ajax est plus rapide car on affiche uniquement les noms nécessaires.


Romain