IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

[FooTable] Charger chaque page en Ajax


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut [FooTable] Charger chaque page en Ajax
    Bonjour à tous,

    Dans le cadre du développement d'une application, j'utilise intensivement le plugin FooTable qui me permet d'avoir rapidement un système de pagination des mes données ainsi que des fonctions de tri. Je l'ai installé et configuré, tout marche correctement. Je charge même mes données en Ajax c'est très facile.

    Seulement, aujourd'hui j'aimerais aller un peu plus loin en terme de performances. Actuellement pour un tableau avec 50 entrées c'est très bien pas de soucis. Mais quand j'ai un tableau avec 10000 entrées, ça prends bien plus de temps à charger. Ma requête charge directement les 10000 entrées et ensuite le plugin se débrouille.

    Ce que j'aurais aimé c'est que je charge par exemple les 10 premières entrées, et ensuite via la pagination à chaque nouvelle page je vais aller chercher en Ajax les 10 entrées suivantes et ainsi de suite. Du coup à chaque fois j'aurais seulement 10 entrées à charger et ce serait super rapide.

    J'ai fait quelques recherches mais je n'ai rien trouvé de concret. Si quelqu'un utilise ce plugin ou aurais une idée de comment je pourrais m'y prendre, ce serait sympa. Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2017
    Messages : 81
    Par défaut
    Bonjour,

    Normalement en utilisant le composant Pagination de ton plugin, tu dois pouvoir gérer le chargement de beaucoup d'entrées

    https://fooplugins.github.io/FooTabl...nced/ajax.html

    Dans la partie notes il précise : Using the paging component drastically improves the performance of the plugin on large numbers of rows.

    Tu pourras trouver un exemple ici : https://fooplugins.github.io/FooTabl...ding-rows.html

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2016
    Messages : 44
    Par défaut
    Merci de ta réponse.

    J'utilise déjà le composant Pagination. Concernant les performances le problème c'est que si j'ai 10000 entrées, le temps de charger ces 10000 entrées et que FooTable parse les données pour rendre le tableau, cela prends pas mal de temps quand même. Certes j'ai un loader pour que l'utilisateur voit que ça charge mais ça fait trop long quand même.

    J'avais pensé à la possibilité de pouvoir charger seulement les 10 premières entrées par exemple, cliquer ensuite sur page 2 et un appel Ajax va me charger les 10 suivantes et ainsi de suite. Au niveau des performances on aurait seulement 10 entrées à charger et à parser à chaque fois.

    Je n'ai pas regardé le composant Pagination en détail, je vais aller voir de ce côté là quand même

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    Bonjour,

    Je pense que tu dois filtrer au niveau de la requête Ajax. Cela te permettra déjà de gagner un peu de temps sur l'exécution de la requête elle même. Même si ca sera pas énorme, surtout si tu as un serveur assez rapide, cela sera toujours cela de pris.
    Mais là ou tu vas gagner le plus c'est sur l'affichage html et JS (jQuery) des éléments.
    Afficher un code html avec 10 000 entrées avec un traitement JS derrière cela prend du temps. D'autant plus que si c'est exécuté sur une machine "client" peu rapide cela le sera encore plus.

    Il faut vraiment que tu limites le nombre de résultats en retour sur ton appel Ajax.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 6
    Par défaut
    Par contre sur le plugin Paging je ne vois pas le moyen de lancer une requête "serverSide".
    A voir si c'est possible.

    Sinon il faudra p-e se tourner vers un produit concurrent comme DataTables.net qui lui permet de faire des requêtes Server Side : https://datatables.net/examples/server_side/simple.html

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2017
    Messages : 81
    Par défaut
    Citation Envoyé par DeRozan31 Voir le message
    Merci de ta réponse.

    J'utilise déjà le composant Pagination. Concernant les performances le problème c'est que si j'ai 10000 entrées, le temps de charger ces 10000 entrées et que FooTable parse les données pour rendre le tableau, cela prends pas mal de temps quand même. Certes j'ai un loader pour que l'utilisateur voit que ça charge mais ça fait trop long quand même.

    J'avais pensé à la possibilité de pouvoir charger seulement les 10 premières entrées par exemple, cliquer ensuite sur page 2 et un appel Ajax va me charger les 10 suivantes et ainsi de suite. Au niveau des performances on aurait seulement 10 entrées à charger et à parser à chaque fois.

    Je n'ai pas regardé le composant Pagination en détail, je vais aller voir de ce côté là quand même
    Voilà c'est exactement ça , tu dois envoyer dans ta requête la range que tu veux de tes entrées (entre 10 et 20, entre 380 et 390, ...)

Discussions similaires

  1. charger page avec ajax
    Par ulysse031 dans le forum JSF
    Réponses: 10
    Dernier message: 16/05/2011, 09h11
  2. [AJAX] charger une page web php avec ajax
    Par lamou23 dans le forum AJAX
    Réponses: 1
    Dernier message: 23/09/2010, 09h43
  3. [AJAX] dtd charger une page avec ajax
    Par bailamos dans le forum AJAX
    Réponses: 3
    Dernier message: 02/05/2010, 18h27
  4. (AJAX) charger une page aspx dans un div
    Par divinThomas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2008, 13h12
  5. [AJAX] Charger des pages en Ajax
    Par persia dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/09/2007, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo