Bootstrap Table Pipeline
Die Pipeline-Erweiterung der Bootstrap Table.
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 FunktionpipelineSize: 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 werdencached-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
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).