mirror of
https://github.com/DataTables/DataTables.git
synced 2025-01-30 23:52:11 +01:00
New: Add unit tests for deferred loading with server-side processing
Remove: Deferred loading for Ajax sourced data - was incomplete and would be messy to fully implement
This commit is contained in:
parent
f39dadda62
commit
503c3cfca5
4
media/js/jquery.dataTables.js
vendored
4
media/js/jquery.dataTables.js
vendored
@ -2305,7 +2305,7 @@
|
||||
*/
|
||||
function _fnInitalise ( oSettings )
|
||||
{
|
||||
var i, iLen, bDefer=oSettings.bDeferLoading, iAjaxStart=oSettings.iInitDisplayStart;
|
||||
var i, iLen, iAjaxStart=oSettings.iInitDisplayStart;
|
||||
|
||||
/* Ensure that the table data is fully initialised */
|
||||
if ( oSettings.bInitialised === false )
|
||||
@ -2358,7 +2358,7 @@
|
||||
}
|
||||
|
||||
/* if there is an ajax source load the data */
|
||||
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide && !bDefer )
|
||||
if ( oSettings.sAjaxSource !== null && !oSettings.oFeatures.bServerSide )
|
||||
{
|
||||
oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, [], function(json) {
|
||||
var aData = json;
|
||||
|
@ -0,0 +1,95 @@
|
||||
// DATA_TEMPLATE: deferred_table
|
||||
/*
|
||||
*/
|
||||
oTest.fnStart( "Defer loading tests" );
|
||||
|
||||
$(document).ready( function () {
|
||||
var gotServerData = false;
|
||||
|
||||
$('#example').dataTable( {
|
||||
"iDeferLoading": 57,
|
||||
"bServerSide": true,
|
||||
"sAjaxSource": "../../../examples/server_side/scripts/server_processing.php",
|
||||
"fnServerData": function (url, data, fn) {
|
||||
$.ajax( {
|
||||
"url": url,
|
||||
"data": data,
|
||||
"success": function(json) {
|
||||
gotServerData = true;
|
||||
fn( json );
|
||||
},
|
||||
"dataType": "json",
|
||||
"cache": false
|
||||
} );
|
||||
}
|
||||
} );
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"10 rows shown on the first page",
|
||||
null,
|
||||
function () { return $('#example tbody tr').length == 10; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"No request to the server yet",
|
||||
null,
|
||||
function () { return !gotServerData; }
|
||||
);
|
||||
|
||||
oTest.fnTest(
|
||||
"Information on zero config",
|
||||
null,
|
||||
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Initial data order retained",
|
||||
null,
|
||||
function () { return $('#example tbody td:eq(0)').html() == "Gecko"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Initial data order retained 2",
|
||||
null,
|
||||
function () { return $('#example tbody td:eq(1)').html() == "Firefox 1.0"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Still no request to the server yet",
|
||||
null,
|
||||
function () { return !gotServerData; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Sorting (first click) on second column",
|
||||
function () { $('#example thead th:eq(1)').click(); },
|
||||
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Now we've had a request",
|
||||
null,
|
||||
function () { return gotServerData; }
|
||||
);
|
||||
|
||||
oTest.fnTest(
|
||||
"Information after sort",
|
||||
null,
|
||||
function () { return document.getElementById('example_info').innerHTML == "Showing 1 to 10 of 57 entries"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Sorting (second click) on second column",
|
||||
function () { $('#example thead th:eq(1)').click(); },
|
||||
function () { return $('#example tbody td:eq(1)').html() == "Seamonkey 1.1"; }
|
||||
);
|
||||
|
||||
oTest.fnWaitTest(
|
||||
"Sorting (third click) on second column",
|
||||
function () { $('#example thead th:eq(1)').click(); },
|
||||
function () { return $('#example tbody td:eq(1)').html() == "All others"; }
|
||||
);
|
||||
|
||||
|
||||
oTest.fnComplete();
|
||||
} );
|
Loading…
x
Reference in New Issue
Block a user