Kendo UI のグリッドをリモート データ仮想化で使用して、100K から 10M のレコードを含むデータソースに接続しようとしています。最初のページ読み込み時に datasource.transport.read() がカスタム関数を起動し、返されたデータが正しくレンダリングされるため、ほとんどの構成が正しく機能していることがわかります。ただし、最初の 100 行が一番下までスクロールされると、datasource.transport.read() が再度起動されて次のページのデータが読み込まれません。Chrome 開発ツールのネットワーク タブでこれを確認しました。
このような AngularJS テンプレート内で定義された剣道 UI グリッドがあります...
...
<div id="myGrid"
kendo-grid="myGrid"
k-options="myGrid.gridOptions"
k-columns="myGrid.columns">
</div>
...
gridOptions は次のように定義されています...
_this.gridOptions = {
dataSource: new kendo.data.DataSource({
serverPaging: true,
serverSorting: true,
pageSize: 100,
schema: {
data: "data",
total: "total"
},
transport: {
read: gridReadHandler // call a REST service and return data
}
}),
height: 600,
scrollable: {
virtual: true
},
selectable: false,
sortable: true,
resizable: true
};
サービスは、この形式で UI にデータを返します...
{
"total": 100000,
"data": [{...},{...}]
}
GridReadHandler は単純に POST リクエストを作成し、AngularJS の $http プロバイダーを介してリクエストを開始します。上で述べたように、最初のリクエストはデータを返し、それを正しく表示しますが、一番下までスクロールすると、Kendo がデータの別の読み取りリクエストを開始することが予想されます。私が見逃している可能性のあるものを誰かが見ることができますか?
前もって感謝します。