/** * By default DataTables only uses the sAjaxSource variable at initialisation * time, however it can be useful to re-read an Ajax source and have the table * update. Typically you would need to use the `fnClearTable()` and * `fnAddData()` functions, however this wraps it all up in a single function * call. * * DataTables 1.10 provides the `dt-api ajax.url()` and `dt-api ajax.reload()` * methods, built-in, to give the same functionality as this plug-in. As such * this method is marked deprecated, but is available for use with legacy * version of DataTables. Please use the new API if you are used DataTables 1.10 * or newer. * * @name fnReloadAjax * @summary Reload the table's data from the Ajax source * @author [Allan Jardine](http://sprymedia.co.uk) * @deprecated * * @param {string} [sNewSource] URL to get the data from. If not give, the * previously used URL is used. * @param {function} [fnCallback] Callback that is executed when the table has * redrawn with the new data * @param {boolean} [bStandingRedraw=false] Standing redraw (don't changing the * paging) * * @example * var table = $('#example').dataTable(); * * // Example call to load a new file * table.fnReloadAjax( 'media/examples_support/json_source2.txt' ); * * // Example call to reload from original file * table.fnReloadAjax(); */ jQuery.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) { // DataTables 1.10 compatibility - if 1.10 then `versionCheck` exists. // 1.10's API has ajax reloading built in, so we use those abilities // directly. if ( jQuery.fn.dataTable.versionCheck ) { var api = new jQuery.fn.dataTable.Api( oSettings ); if ( sNewSource ) { api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw ); } else { api.ajax.reload( fnCallback, !bStandingRedraw ); } return; } if ( sNewSource !== undefined && sNewSource !== null ) { oSettings.sAjaxSource = sNewSource; } // Server-side processing should just call fnDraw if ( oSettings.oFeatures.bServerSide ) { this.fnDraw(); return; } this.oApi._fnProcessingDisplay( oSettings, true ); var that = this; var iStart = oSettings._iDisplayStart; var aData = []; this.oApi._fnServerParams( oSettings, aData ); oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) { /* Clear the old information from the table */ that.oApi._fnClearTable( oSettings ); /* Got the data - add it to the table */ var aData = (oSettings.sAjaxDataProp !== "") ? that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json; for ( var i=0 ; i