Ver no GitHub

Bootstrap Table Pipeline

Extensão Pipeline da tabela Bootstrap Table.

Nesta página

Este plugin habilita o caching de dados do lado do cliente para requisições do lado do servidor, o que eliminará a necessidade de emitir uma nova requisição a cada mudança de página. Isso permitirá um equilíbrio de performance para um grande conjunto de dados entre retornar todos os dados de uma vez (paginação do lado do cliente) e uma nova requisição do lado do servidor (paginação do lado do servidor).

Há duas novas opções:

  • usePipeline: habilita esse recurso
  • pipelineSize: o tamanho de cada janela de cache

O tamanho do pipeline deve ser divisível pelo tamanho da página atual. Isso é garantido arredondando para o valor mais próximo divisível. Por exemplo, se o tamanho do pipeline for 4990 e o tamanho da página atual for 25, o tamanho do pipeline será definido dinamicamente como 5000.

As janelas de cache são calculadas com base no tamanho do pipeline e no número total de linhas retornadas pela consulta do lado do servidor. Por exemplo, com tamanho do pipeline 500 e total de linhas 1300, as janelas de cache serão:

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

Usando os parâmetros limit (ou seja, o pipelineSize) e offset, a requisição do lado do servidor DEVE retornar apenas os dados na janela de cache solicitada E o número total de linhas. Ou seja, o código do lado do servidor deve usar os parâmetros offset e limit para preparar os dados da resposta.

Em uma mudança de página, o novo offset é verificado se está dentro da janela de cache atual. Se sim, os dados da página solicitada são retornados do conjunto de dados em cache. Caso contrário, uma nova requisição do lado do servidor será emitida para a nova janela de cache.

Os dados em cache atuais são invalidados apenas nesses eventos:

  • classificação
  • busca
  • mudança de tamanho da página
  • mudança de página para uma nova janela de cache

Há dois novos eventos:

  • cached-data-hit.bs.table: emitido quando dados em cache são usados em uma mudança de página
  • cached-data-reset.bs.table: emitido quando os dados em cache são invalidados e a nova requisição do lado do servidor é emitida

Uso

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

Exemplo

Pipeline

Opções

pipelineSize

  • Atributo: data-pipeline-size

  • Tipo: Number

  • Detalhe:

    Tamanho de cada janela de cache. Deve ser maior que 0.

  • Padrão: 1000

usePipeline

  • Atributo: data-use-pipeline

  • Tipo: Boolean

  • Detalhe:

    Defina true para habilitar o pipeline.

  • Padrão: false

Eventos

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

  • Parâmetros: undefined

  • Detalhe:

    Dispara quando a paginação pode usar os dados em cache localmente.

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

  • Parâmetros: undefined

  • Detalhe:

    Dispara quando os dados em cache localmente precisam ser redefinidos (ou seja, na classificação, busca, mudança de tamanho da página ou página fora da janela de cache atual).