From backend data is comming in sequence number. Like ID will be generated as 1,2,3,4.....etc. We are displaying latest record on top like 5,4,3,....
Issue is on vertical scroll, we are missing huge number of rows to display in grid. Please let me know any solution for this.
Note: Per second we are receiving 3000 records
code is as follows:
var data[];
var columnDefs = [
{headerName: "ID", width: 50},
{headerName: "Athlete", field: "athlete", width: 150},
{headerName: "Age", field: "age", width: 90}];
var gridOptions = {
enableColResize: true,
debug: true,
rowSelection: 'multiple',
rowDeselection: true,
columnDefs: columnDefs,
rowModelType: 'infinite',
paginationPageSize: 100,
cacheOverflowSize: 2,
maxConcurrentDatasourceRequests: 2,
infiniteInitialRowCount: 1,
maxBlocksInCache: 2};
function setRowData(allOfTheData) {
var dataSource = {
rowCount: null,
getRows: function (params) {
console.log('asking for ' + params.startRow + ' to ' + params.endRow);
setTimeout( function() {
var rowsThisPage = allOfTheData.slice(params.startRow, params.endRow);
var lastRow = -1;
if (allOfTheData.length <= params.endRow) {
lastRow = allOfTheData.length;
}
params.successCallback(rowsThisPage, lastRow);
}, 500);
}
};
gridOptions.api.setDatasource(dataSource);
}
document.addEventListener('DOMContentLoaded', function() {
var gridDiv = document.querySelector('#myGrid');
new agGrid.Grid(gridDiv, gridOptions);
var httpRequest = new XMLHttpRequest();
httpRequest.open('GET', 'something');
httpRequest.send();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
var data= JSON.parse(httpRequest.responseText);
setRowData(data);
}
};
setInterval(function(){
var id=0;
var httpRequest = new XMLHttpRequest();
if(data.length!=0)id=data[0].id;
var url= "something?id"=+id;
httpRequest.open('GET', url);
httpRequest.send();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4 && httpRequest.status == 200) {
var newdata= JSON.parse(httpRequest.responseText);
gridOptions.api.insertItemsAtIndex(0,newdata);
gridOptions.api.refreshView();
}
};
},3000);
});