Why my datatable is not reloading using ajax.reload()?
Why my datatable is not reloading using ajax.reload()?
p_huyn
Posts: 2Questions: 1Answers: 0
I am using DataTables 1.10 new API, jQuery 1.10.
Here is the Javascript code:
$(document).ready(function() {
var mytable = $('#mytable').DataTable({
serverSide:true,
ajax:{
url:'MyServlet',
type:'POST'
},
// row = [image, screenname, count, message, timestamp, userId]
columnDefs:[
{
targets:0,
render:function(imgfn, type, row) {
return html4thumbnail(imgfn, row[5]);
}
},
{
targets:1,
render:function(screenname, type, row) {
return html4summary(screenname, row[2], row[4], row[3], row[5]);
}
},
{visible:false, targets:[2,3,4,5]}
],
paginate:false
});
// Auto refresh every 30 secs
setInterval(function() {
mytable.ajax.reload();
}, 30000);
});
MyServlet queries a MySql table.
Initially, mytable is populated correctly. It doesn't refresh when the MySql table changes. A browser refresh would repopulate mytable correctly.
Am I missing any detail?
This discussion has been closed.
Answers
Looks like it should work to me. Can you link to the page so we can take a look please?
Thanks,
Allan
Problem solved. I found someone else who had the same problem. Here is why: in the JSON object my server returns, I used attribute "draw":1. When the client receives this object, the datatable will not using it to reload itself. So don't use "draw":1 if you want to reload your datatable.
Ah I see. Yes, the
draw
counter needs to be updated for each request. I should point out, that since you are using server-side processing, you could just call thedraw()
method which would redraw the table.Allan