A simple mock-up for Lazy Loading (Load On Demand using vertical scroll-bar):
Running Sample in: http://jsfiddle.net/clemskie/VL2BL/
HTML:
<div id='container' style='border: solid 1px gray;height:100px;overflow:auto;'>
<table id='theTable'>
<thead>
<th>ID</th>
<th>NAME</th>
</thead>
<tbody></tbody>
</table>
</div>
<button onclick='MyPageController.loadInitialDisplay();'> Reset
</button>
JAVASCRIPT:
window.MyPageController = {
recordsPerPage: 5,
rowCtr: 0,
container: $('#container'),
theTable: $('#theTable'),
clearTable: function () {
$(theTable).children('tbody').remove();
},
loadInitialDisplay: function () {
this.container.scrollTop(0);
this.rowCtr = 0;
this.clearTable();
this.loadNextSetOfRecords();
},
loadNextSetOfRecords: function () {
for (var i = 1; i <= this.recordsPerPage; i++) {
this.rowCtr++;
var tr = $('');
var tdID = $('<td />', {html: this.rowCtr});
var tdName = $('<td />', {html: 'Name' + this.rowCtr});
tr.append(tdID, tdName);
$(theTable).append(tr);
}
}
};
function scrollHandler(container) {
var st = container.scrollTop;
var scrollHeight = container.scrollHeight;
var containerHeight = container.clientHeight;
if (st >= scrollHeight - containerHeight) {
MyPageController.loadNextSetOfRecords();
}
}
$(function () {
MyPageController.loadInitialDisplay();
MyPageController.container.on('scroll', function(event){
scrollHandler(this);
});
});
No comments:
Post a Comment