在 GitHub 上查看

表格管道

Bootstrap 表格的表格管道扩展。

此插件允许对服务器端请求进行客户端数据缓存,从而无需在每次页面更改时都发出新请求。这将使大型数据集在一次返回所有数据(客户端分页)和新的服务器端请求(服务器端分页)之间实现性能平衡。

有两个新选项

  • usePipeline: 启用此功能
  • pipelineSize: 每个缓存窗口的大小

管道的尺寸必须能被当前页面尺寸整除。这可以通过舍入到最接近的能被整除的值来确保。例如,如果管道尺寸为 4990,当前页面尺寸为 25,那么管道尺寸将动态设置为 5000。

缓存窗口是根据管道尺寸和服务器端查询返回的总行数计算的。例如,当管道尺寸为 500,总行数为 1300 时,缓存窗口将为

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

使用限制(即 pipelineSize)和偏移参数,服务器端请求 **必须** 仅返回请求的缓存窗口中的数据 **以及** 总行数。也就是说,服务器端代码必须使用偏移量和限制参数来准备响应数据。

在页面更改时,会检查新的偏移量是否在当前缓存窗口内。如果是,则从缓存的数据集中返回请求的页面数据。否则,将为新的缓存窗口发出新的服务器端请求。

仅在以下事件发生时,当前缓存的数据才会失效

  • 排序
  • 搜索
  • 页面大小更改
  • 页面更改移至新的缓存窗口

有两个新的事件

  • cached-data-hit.bs.table: 在页面更改时使用缓存数据时发出
  • cached-data-reset.bs.table: 当缓存数据失效并发出新的服务器端请求时发出

使用

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

使用

示例

管道

选项

pipelineSize

  • 类型: 数字
  • 描述: 每个缓存窗口的大小。必须大于 0。
  • 默认值: 1000

usePipeline

  • 类型: 布尔值
  • 描述: 设置为 true 以启用管道
  • 默认值: false

事件

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

  • 在分页可以使用本地缓存数据时触发。

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

  • 当本地缓存数据需要重置时触发(例如,在排序、搜索、页面大小更改或页面超出当前缓存窗口时)。