Prevent multiple ajax calls from jquery datatable on server side pagination











up vote
0
down vote

favorite












I have a jquery dataTable which sends a request to MVC controller using ajax and displays the data.
It works fine with client side processing but response time is too slow because it retrieves all the records.



To make it faster server side pagination is required.
The issue with server side pagination is that setting server side pagination to true in jquery datatable it makes multiple ajax requests.



I have been debugging it a lot but cant figure the problem which causes multiple ajax requests. I have implemented many different ways available on google but nothing worked.



How to make it work using server side pagination?
How can I prevent multiple ajax calls? ( table is initialized under document.ready() )



document.ready(function() {

$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/home/LoadData",
"type": "Get",
"datatype": "json"
"data":{ date:'date'},// parameter on controller to filter records
},
"columns": [
{ "data": "ContactName", "name": "ContactName", "autoWidth": true },
{ "data": "CompanyName", "name": "CompanyName", "autoWidth": true },
{ "data": "Phone", "name": "Phone", "autoWidth": true },
{ "data": "Country", "name": "Country", "autoWidth": true },
{ "data": "City", "name": "City", "autoWidth": true },
{ "data": "PostalCode", "name": "PostalCode", "autoWidth": true }
]
});


The data returned on first call is exactly what I want but multiple requests make it worse.










share|improve this question




















  • 2




    How about some code?
    – Katie.Sun
    Nov 13 at 15:35






  • 2




    By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
    – Rory McCrossan
    Nov 13 at 15:39










  • @Katie.Sun see the code
    – rashidali
    Nov 13 at 15:59










  • when do these ajax requests fire?
    – GregH
    Nov 13 at 19:14















up vote
0
down vote

favorite












I have a jquery dataTable which sends a request to MVC controller using ajax and displays the data.
It works fine with client side processing but response time is too slow because it retrieves all the records.



To make it faster server side pagination is required.
The issue with server side pagination is that setting server side pagination to true in jquery datatable it makes multiple ajax requests.



I have been debugging it a lot but cant figure the problem which causes multiple ajax requests. I have implemented many different ways available on google but nothing worked.



How to make it work using server side pagination?
How can I prevent multiple ajax calls? ( table is initialized under document.ready() )



document.ready(function() {

$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/home/LoadData",
"type": "Get",
"datatype": "json"
"data":{ date:'date'},// parameter on controller to filter records
},
"columns": [
{ "data": "ContactName", "name": "ContactName", "autoWidth": true },
{ "data": "CompanyName", "name": "CompanyName", "autoWidth": true },
{ "data": "Phone", "name": "Phone", "autoWidth": true },
{ "data": "Country", "name": "Country", "autoWidth": true },
{ "data": "City", "name": "City", "autoWidth": true },
{ "data": "PostalCode", "name": "PostalCode", "autoWidth": true }
]
});


The data returned on first call is exactly what I want but multiple requests make it worse.










share|improve this question




















  • 2




    How about some code?
    – Katie.Sun
    Nov 13 at 15:35






  • 2




    By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
    – Rory McCrossan
    Nov 13 at 15:39










  • @Katie.Sun see the code
    – rashidali
    Nov 13 at 15:59










  • when do these ajax requests fire?
    – GregH
    Nov 13 at 19:14













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have a jquery dataTable which sends a request to MVC controller using ajax and displays the data.
It works fine with client side processing but response time is too slow because it retrieves all the records.



To make it faster server side pagination is required.
The issue with server side pagination is that setting server side pagination to true in jquery datatable it makes multiple ajax requests.



I have been debugging it a lot but cant figure the problem which causes multiple ajax requests. I have implemented many different ways available on google but nothing worked.



How to make it work using server side pagination?
How can I prevent multiple ajax calls? ( table is initialized under document.ready() )



document.ready(function() {

$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/home/LoadData",
"type": "Get",
"datatype": "json"
"data":{ date:'date'},// parameter on controller to filter records
},
"columns": [
{ "data": "ContactName", "name": "ContactName", "autoWidth": true },
{ "data": "CompanyName", "name": "CompanyName", "autoWidth": true },
{ "data": "Phone", "name": "Phone", "autoWidth": true },
{ "data": "Country", "name": "Country", "autoWidth": true },
{ "data": "City", "name": "City", "autoWidth": true },
{ "data": "PostalCode", "name": "PostalCode", "autoWidth": true }
]
});


The data returned on first call is exactly what I want but multiple requests make it worse.










share|improve this question















I have a jquery dataTable which sends a request to MVC controller using ajax and displays the data.
It works fine with client side processing but response time is too slow because it retrieves all the records.



To make it faster server side pagination is required.
The issue with server side pagination is that setting server side pagination to true in jquery datatable it makes multiple ajax requests.



I have been debugging it a lot but cant figure the problem which causes multiple ajax requests. I have implemented many different ways available on google but nothing worked.



How to make it work using server side pagination?
How can I prevent multiple ajax calls? ( table is initialized under document.ready() )



document.ready(function() {

$("#myTable").DataTable({
"processing": true, // for show progress bar
"serverSide": true, // for process server side
"orderMulti": false, // for disable multiple column at once
"ajax": {
"url": "/home/LoadData",
"type": "Get",
"datatype": "json"
"data":{ date:'date'},// parameter on controller to filter records
},
"columns": [
{ "data": "ContactName", "name": "ContactName", "autoWidth": true },
{ "data": "CompanyName", "name": "CompanyName", "autoWidth": true },
{ "data": "Phone", "name": "Phone", "autoWidth": true },
{ "data": "Country", "name": "Country", "autoWidth": true },
{ "data": "City", "name": "City", "autoWidth": true },
{ "data": "PostalCode", "name": "PostalCode", "autoWidth": true }
]
});


The data returned on first call is exactly what I want but multiple requests make it worse.







javascript jquery ajax asp.net-mvc datatables






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 at 15:48

























asked Nov 13 at 15:33









rashidali

2818




2818








  • 2




    How about some code?
    – Katie.Sun
    Nov 13 at 15:35






  • 2




    By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
    – Rory McCrossan
    Nov 13 at 15:39










  • @Katie.Sun see the code
    – rashidali
    Nov 13 at 15:59










  • when do these ajax requests fire?
    – GregH
    Nov 13 at 19:14














  • 2




    How about some code?
    – Katie.Sun
    Nov 13 at 15:35






  • 2




    By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
    – Rory McCrossan
    Nov 13 at 15:39










  • @Katie.Sun see the code
    – rashidali
    Nov 13 at 15:59










  • when do these ajax requests fire?
    – GregH
    Nov 13 at 19:14








2




2




How about some code?
– Katie.Sun
Nov 13 at 15:35




How about some code?
– Katie.Sun
Nov 13 at 15:35




2




2




By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
– Rory McCrossan
Nov 13 at 15:39




By default pagination alone won't make multiple AJAX requests on page change. We can't really help you without seeing your code as @Katie.Sun suggests
– Rory McCrossan
Nov 13 at 15:39












@Katie.Sun see the code
– rashidali
Nov 13 at 15:59




@Katie.Sun see the code
– rashidali
Nov 13 at 15:59












when do these ajax requests fire?
– GregH
Nov 13 at 19:14




when do these ajax requests fire?
– GregH
Nov 13 at 19:14












1 Answer
1






active

oldest

votes

















up vote
0
down vote



accepted










I was adding the data to table on ajax success method even though I had defined the column definitions for it.
Removing the success method solved the problem.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284402%2fprevent-multiple-ajax-calls-from-jquery-datatable-on-server-side-pagination%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote



    accepted










    I was adding the data to table on ajax success method even though I had defined the column definitions for it.
    Removing the success method solved the problem.






    share|improve this answer

























      up vote
      0
      down vote



      accepted










      I was adding the data to table on ajax success method even though I had defined the column definitions for it.
      Removing the success method solved the problem.






      share|improve this answer























        up vote
        0
        down vote



        accepted







        up vote
        0
        down vote



        accepted






        I was adding the data to table on ajax success method even though I had defined the column definitions for it.
        Removing the success method solved the problem.






        share|improve this answer












        I was adding the data to table on ajax success method even though I had defined the column definitions for it.
        Removing the success method solved the problem.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 14 at 16:30









        rashidali

        2818




        2818






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284402%2fprevent-multiple-ajax-calls-from-jquery-datatable-on-server-side-pagination%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to change which sound is reproduced for terminal bell?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Can I use Tabulator js library in my java Spring + Thymeleaf project?