Voir sur GitHub

Bootstrap Table Pipeline

Extension Table Pipeline de Bootstrap Table.

Sur cette page

Ce plugin active le cache de données côté client pour les requêtes côté serveur, ce qui éliminera le besoin de faire une nouvelle requête à chaque changement de page. Cela permettra un équilibre de performance pour un grand ensemble de données entre le retour de toutes les données en une fois (pagination côté client) et une nouvelle requête côté serveur (pagination côté serveur).

Il y a deux nouvelles options :

  • usePipeline : active cette fonctionnalité
  • pipelineSize : la taille de chaque fenêtre de cache

La taille du pipeline doit être divisible par la taille de page actuelle. Ceci est assuré en arrondissant à la valeur la plus proche divisible. Par exemple, si la taille du pipeline est 4990 et que la taille de page actuelle est 25, alors la taille du pipeline sera définie dynamiquement à 5000.

Les fenêtres de cache sont calculées en fonction de la taille du pipeline et du nombre total de lignes retournées par la requête côté serveur. Par exemple, avec une taille de pipeline de 500 et 1300 lignes au total, les fenêtres de cache seront :

[
  {
    "lower": 0,
    "upper": 499
  },
  {
    "lower": 500,
    "upper": 999
  },
  {
    "lower": 1000,
    "upper": 1499
  }
]

En utilisant les paramètres limit (c’est-à-dire pipelineSize) et offset, la requête côté serveur DOIT retourner uniquement les données dans la fenêtre de cache demandée ET le nombre total de lignes. A savoir, le code côté serveur doit utiliser les paramètres offset et limit pour préparer les données de réponse.

Lors d’un changement de page, le nouvel offset est vérifié s’il est dans la fenêtre de cache actuelle. Si c’est le cas, les données de la page demandée sont retournées à partir de l’ensemble de données en cache. Sinon, une nouvelle requête côté serveur sera envoyée pour la nouvelle fenêtre de cache.

Les données mises en cache ne sont invalidées que lors de ces événements :

  • tri
  • recherche
  • changement de taille de page
  • changement de page se déplaçant vers une nouvelle fenêtre de cache

Il y a deux nouveaux événements :

  • cached-data-hit.bs.table : émis lorsque les données en cache sont utilisées lors d’un changement de page
  • cached-data-reset.bs.table : émis lorsque les données en cache sont invalidées et que la nouvelle requête côté serveur est envoyée

Utilisation

<script src="extensions/pipeline/bootstrap-table-pipeline.js"></script>

Exemple

Pipeline

Options

pipelineSize

  • attribute : data-pipeline-size

  • type : Number

  • Détail :

    Taille de chaque fenêtre de cache. Doit être supérieur à 0.

  • Par défaut : 1000

usePipeline

  • attribute : data-use-pipeline

  • type : Boolean

  • Détail :

    Définissez true pour activer le pipelining.

  • Par défaut : false

Événements

onCachedDataHit (cached-data-hit.bs.table)

  • Paramètres : undefined

  • Détail :

    Se déclenche lorsque la pagination peut utiliser les données mises en cache localement.

onCachedDataReset (cached-data-reset.bs.table)

  • Paramètres : undefined

  • Détail :

    Se déclenche lorsque les données mises en cache localement doivent être réinitialisées (c’est-à-dire lors du tri, de la recherche, du changement de taille de page ou de la page hors de la fenêtre de cache actuelle).