TABLEAU GÉNÉRÉ ET TRIÉ PAR LE CLIENT

the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 - 19 juil. 2009 à 12:39
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009 - 20 juil. 2009 à 14:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50331-tableau-genere-et-trie-par-le-client

lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
20 juil. 2009 à 14:28
Quand on a toutes les données et qu'on veux trier avec les pc d'aujourd hui je ne voit pas pourquoi faire un appel serveur,c'est d'ailleur un peu la mode aujourd hui un retour vers des clients semi-lourd (silverlight, flash,javascript avancé..) ça économise de la bande passante et du CPU serveur...non?
cs_Klephte Messages postés 22 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 4 janvier 2022
20 juil. 2009 à 14:18
Bonjour et merci pour vos réactions sur ce script.
Pour répondre à THE_WWT, je dirais qu'en règle générale, il n'est pas résonnable de faire trier un résultat par le client mais que dans mon cas particulier, le coût de collecte des données (dans le produit final) justifie que le client fasse ce travail lui même. De plus, comme tu t'en doutes, il ne s'agit que d'une partie d'un ensemble plus complexe permettant l'édition et la modification hors ligne de ces données (sans solliciter le serveur), seul le post final provoquant l'enregistrement.
Cela dit, j'ai regardé plus en détail le code que tu as posté et je te félicite pour la beauté du style, j'ai surtout aimé la fonction cf (comparaison fonction ??) qui éviterait dans mon cas les conditions d'ordres sur les tris. Je vais donc intégrer cette astuce et proposer une nouvelle version en ajoutant le sort natif pour avoir un comparatif entre un tri pourri (bubblesort), un bien (quicksort) et un excellent (sort natif) qui permet de trier dans un temp inférieur à la seconde un tableau de plusieurs milliers de lignes ...
the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 1
20 juil. 2009 à 12:03
Bonjour à tous,

je parle en effet de la fonction Array#sort(comparator) qui trie une collection et peut prendre une fonction de comparaison en paramètre.

@LeFauve42: Tout simplement parce que durant le tri le navigateur est bloqué. Je suis d'accord avec toi si ta collection comporte moins de 25 éléments le navigateur est bloqué moins d'une milliseconde. Cependant, si tu utilises la pagination du jeu de résultat le tri coté client n'est plus envisageable (tout simplement car il ne dispose pas de l'ensemble de la collection).

Cdlt,

Pierrick
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
20 juil. 2009 à 10:12
THE_WWT: Que veux-tu dire par "le tri coté client n'est jamais une bonne solution" ?

Si on n'a pas des miliers de lignes, et qu'on veut permettre a l'utilisateur de changer le tri (en cliquant sur le titre des colonnes) ca me parait un solution bien meilleure que de redemander au serveur une nouvelle liste, non ?

Je suis aussi curieux de savoir ce que tu entends par "la fonction de tri du navigateur". Est-ce que tu parles de la methode sort() de la classe Array ?

Eric
lakichemole Messages postés 253 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 18 mai 2009
20 juil. 2009 à 09:20
Très bonne source, interressante :)
sinon THE_WWT qu'entends tu par "La conclusion est que la fonction tri du navigateur (mis à part IE6) est toujours la meilleure..." c'est quoi la fonction de tri du navigateur??
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
20 juil. 2009 à 00:35
Wouep, mais qd meme super interressant
the_wwt Messages postés 177 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 16 janvier 2009 1
19 juil. 2009 à 12:39
Bonjour,

cela est un bon exercice algorithmique, cependant le tri coté client n'est jamais une bonne solution.

Au passage, j'avais écris une source du même ressort il y a quelques années en implémentant les algorithmes les plus connus :
http://www.javascriptfr.com/codes/TRI-TABLEAU-ALGORITHME-PLUS-CONNUS-IMPLEMENTES-FUSION-QUICK_43711.aspx

La conclusion est que la fonction tri du navigateur (mis à part IE6) est toujours la meilleure...

Les propriétés (taille, ordre initial...) de la collection à trier influent beaucoup sur l'algorithme à utiliser...

Cdlt,

Pierrick
Rejoignez-nous