web-dev-qa-db-fra.com

Comment optimiser jquery datatable pour charger efficacement de grandes données (lignes 10k-50k)?

J'utilise jquery datatable avec une configuration minimale pour présenter les données sur mon site Web. j'ai 10 000 à 50 000 enregistrements à afficher dans une table de données.

Actuellement, le datatable prend environ 60 secondes pour initialiser 3000 enregistrements.

Il y a deux options qui peuvent être utilisées pour initialiser la table de données: -

1) Ajoutez des enregistrements en tant que table html sur la page, puis initialisez la table de données sur cette table.
2) Avoir un json d'enregistrements, puis initialiser datatable avec ces données.

Effectuez les étapes suivantes nous aide à améliorer les performances du plugin datatable: -

1) Réduction du nombre de colonnes
2) Regroupement des colonnes liées
3) Utiliser le tri uniquement sur les champs obligatoires ou supprimer la fonction de tri tous ensemble

Les données sont les suivantes - C'est un ensemble de questions mcq avec des options pour prévisualiser/éditer/supprimer

enter image description here

La recherche sur question est quelque chose de très important pour mon application.
Veuillez fournir une solution optimale pour utiliser datatable pour l'ensemble de données fourni.

15
abhinsit

Vous avez oublié une troisième option: le traitement côté serveur

Vous pouvez apprendre presque tout ce que vous devez savoir dans la documentation officielle: http://www.datatables.net/examples/server_side/simple.html

Fondamentalement, vous ne chargez que les données qui sont absolument nécessaires pour afficher le tableau. Comme la page a besoin de plus de données, comme aller sur une autre page ou effectuer une recherche, le serveur renvoie le client avec plus de données.

Il existe de nombreuses façons d'intégrer vos données dans DataTables, et si vous travaillez avec des bases de données très volumineuses, vous voudrez peut-être envisager d'utiliser les options côté serveur fournies par DataTables. Avec le traitement côté serveur activé, toute la pagination, la recherche , la commande des actions etc. que DataTables effectue sont transmises à un serveur où un moteur SQL (ou similaire) peut effectuer ces actions sur le grand ensemble de données (après tout, c'est pour cela que le moteur de base de données est conçu!). En tant que tel, chaque tirage de la table entraînera une nouvelle demande Ajax pour obtenir les données requises.

7
AmuletxHeart