GitHubで確認

テーブルパイプライン

Bootstrap Tableのテーブルパイプライン拡張機能。

このプラグインは、サーバーサイドリクエストに対するクライアントサイドデータキャッシングを有効にします。これにより、ページ変更ごとに新しいリクエストを発行する必要がなくなります。これにより、大量のデータセットにおいて、すべてのデータを一度に返す(クライアントサイドページング)と、新しいサーバーサイドリクエスト(サーバーサイドページング)の間でパフォーマンスのバランスを取ることができます。

2つの新しいオプションがあります。

  • usePipeline: この機能を有効にします。
  • pipelineSize: 各キャッシュウィンドウのサイズ。

パイプラインのサイズは、現在のページサイズで均等に割り切れる必要があります。これは、最も近い均等に割り切れる値に切り上げることで確保されます。たとえば、パイプラインサイズが4990で現在のページサイズが25の場合、パイプラインサイズは動的に5000に設定されます。

キャッシュウィンドウは、パイプラインサイズとサーバーサイドクエリによって返される行の総数に基づいて計算されます。たとえば、パイプラインサイズが500で総行数が1300の場合、キャッシュウィンドウは次のようになります。

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

limit(つまりpipelineSize)とoffsetパラメータを使用して、サーバーサイドリクエストは、要求されたキャッシュウィンドウ内のデータ**のみ**と、行の総数を返す**必要があります**。つまり、サーバーサイドコードは、offsetとlimitパラメータを使用してレスポンスデータを準備する必要があります。

ページ変更時、新しいオフセットが現在のキャッシュウィンドウ内にあるかどうかがチェックされます。もしそうであれば、要求されたページデータはキャッシュされたデータセットから返されます。そうでない場合は、新しいキャッシュウィンドウに対して新しいサーバーサイドリクエストが発行されます。

現在のキャッシュデータは無効化されます。

  • ソート
  • 検索
  • ページサイズ変更
  • ページ変更で新しいキャッシュウィンドウに移動した場合

2つの新しいイベントがあります。

  • 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)

  • ローカルにキャッシュされたデータのリセットが必要な場合(ソート、検索、ページサイズ変更、または現在のキャッシュウィンドウ外のページの場合)に発生します。