Bootstrap Table Pipeline
Estensione Pipeline della tabella di Bootstrap Table.
Questo plugin abilita la memorizzazione in cache dei dati lato client per le richieste lato server, eliminando la necessità di inviare una nuova richiesta ad ogni cambio di pagina. Ciò consentirà un equilibrio prestazionale per un grande set di dati tra il ritorno di tutti i dati contemporaneamente (paginazione lato client) e una nuova richiesta lato server (paginazione lato server).
Ci sono due nuove opzioni:
usePipeline: abilita questa funzionalitàpipelineSize: la dimensione di ogni finestra di cache
La dimensione del pipeline deve essere divisibile per la dimensione corrente della pagina. Ciò è assicurato arrotondando al valore divisibile più vicino. Ad esempio, se la dimensione del pipeline è 4990 e la dimensione corrente della pagina è 25, allora la dimensione del pipeline sarà impostata dinamicamente su 5000.
Le finestre di cache vengono calcolate in base alla dimensione del pipeline e al numero totale di righe restituite dalla query lato server. Ad esempio, con dimensione del pipeline 500 e righe totali 1300, le finestre di cache saranno:
[
{
"lower": 0,
"upper": 499
},
{
"lower": 500,
"upper": 999
},
{
"lower": 1000,
"upper": 1499
}
]
Utilizzando i parametri limit (cioè pipelineSize) e offset, la richiesta lato server
DEVE restituire solo i dati nella finestra di cache richiesta E il numero totale di righe.
Cioè, il codice lato server deve utilizzare i parametri offset e limit per preparare i dati di risposta.
Su un cambio di pagina, il nuovo offset viene controllato per verificare se si trova all’interno della finestra di cache corrente. In caso affermativo, i dati della pagina richiesta vengono restituiti dall’insieme di dati memorizzati in cache. In caso contrario, verrà inviata una nuova richiesta lato server per la nuova finestra di cache.
I dati memorizzati in cache correnti vengono invalidati solo in questi eventi:
- ordinamento
- ricerca
- cambio della dimensione della pagina
- cambio di pagina che si sposta in una nuova finestra di cache
Ci sono due nuovi eventi:
cached-data-hit.bs.table: emesso quando sui dati memorizzati in cache vengono utilizzati su un cambio di paginacached-data-reset.bs.table: emesso quando i dati memorizzati in cache vengono invalidati e viene inviata la nuova richiesta lato server
Utilizzo
<script src="extensions/pipeline/bootstrap-table-pipeline.js"></script>
Esempio
Opzioni
pipelineSize
-
Attributo:
data-pipeline-size -
Tipo:
Number -
Dettagli:
Dimensione di ogni finestra di cache. Deve essere maggiore di 0.
-
Default:
1000
usePipeline
-
Attributo:
data-use-pipeline -
Tipo:
Boolean -
Dettagli:
Imposta true per abilitare il pipeline.
-
Default:
false
Eventi
onCachedDataHit (cached-data-hit.bs.table)
-
Parametri:
undefined -
Dettagli:
Si scatena quando la paginazione può utilizzare i dati memorizzati localmente in cache.
onCachedDataReset (cached-data-reset.bs.table)
-
Parametri:
undefined -
Dettagli:
Si scatena quando i dati memorizzati localmente in cache devono essere reimpostati (ad esempio, durante l’ordinamento, la ricerca, il cambio della dimensione della pagina o la pagina fuori dalla finestra di cache corrente).