Auf GitHub anzeigen

Bootstrap Table Pipeline

Die Pipeline-Erweiterung der Bootstrap Table.

Auf dieser Seite

Dieses Plugin ermöglicht client-seitiges Daten-Caching für serverseitige Anfragen, was die Notwendigkeit einer neuen Anfrage bei jeder Seitenänderung eliminiert. Dies ermöglicht eine Leistungsbalance für große Datensätze zwischen der Rückgabe aller Daten auf einmal (client-seitige Paginierung) und einer neuen serverseitigen Anfrage (serverseitige Paginierung).

Es gibt zwei neue Optionen:

  • usePipeline: aktiviert diese Funktion
  • pipelineSize: die Größe jedes Cache-Fensters

Die Größe der Pipeline muss durch die aktuelle Seitengröße ohne Rest teilbar sein. Dies wird durch Aufrunden auf den nächsten ganzzahligen Wert sichergestellt. Beispielsweise, wenn die Pipeline-Größe 4990 und die aktuelle Seitengröße 25 ist, wird die Pipeline-Größe dynamisch auf 5000 gesetzt.

Die Cache-Fenster werden basierend auf der Pipeline-Größe und der Gesamtzahl der Zeilen berechnet, die durch die serverseitige Abfrage zurückgegeben werden. Beispielsweise, mit einer Pipeline-Größe von 500 und insgesamt 1300 Zeilen, werden die Cache-Fenster wie folgt sein:

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

Unter Verwendung der limit (d. h. der pipelineSize) und offset Parameter muss die serverseitige Anfrage NUR die Daten im angeforderten Cache-Fenster UND die Gesamtzahl der Zeilen zurückgeben. Das heißt, der serverseitige Code muss die offset und limit Parameter verwenden, um die Antwortdaten vorzubereiten.

Bei einer Seitenänderung wird überprüft, ob der neue offset innerhalb des aktuellen Cache-Fensters liegt. Falls ja, wird die angeforderte Seiten-Daten aus dem zwischengespeicherten Datensatz zurückgegeben. Andernfalls wird eine neue serverseitige Anfrage für das neue Cache-Fenster gestellt.

Die aktuell zwischengespeicherten Daten werden nur bei folgenden Ereignissen ungültig:

  • Sortierung
  • Suche
  • Änderung der Seitengröße
  • Seitenänderung bewegt sich in ein neues Cache-Fenster

Es gibt zwei neue Ereignisse:

  • cached-data-hit.bs.table: wird ausgelöst, wenn zwischengespeicherte Daten bei einer Seitenänderung verwendet werden
  • cached-data-reset.bs.table: wird ausgelöst, wenn die zwischengespeicherten Daten ungültig gemacht werden und die neue serverseitige Anfrage gestellt wird

Verwendung

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

Beispiel

Pipeline

Optionen

pipelineSize

  • Attribut: data-pipeline-size

  • Typ: Number

  • Detail:

    Größe jedes Cache-Fensters. Muss größer als 0 sein.

  • Standard: 1000

usePipeline

  • Attribut: data-use-pipeline

  • Typ: Boolean

  • Detail:

    Setzen Sie true, um die Pipelining-Funktion zu aktivieren.

  • Standard: false

Events

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

  • Parameter: undefined

  • Detail:

    Wird ausgelöst, wenn die Paginierung die lokal zwischengespeicherten Daten verwenden kann.

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

  • Parameter: undefined

  • Detail:

    Wird ausgelöst, wenn die lokal zwischengespeicherten Daten zurückgesetzt werden müssen (d. h. bei Sortierung, Suche, Änderung der Seitengröße oder wenn die Seite außerhalb des aktuellen Cache-Fensters liegt).