Slow performance of Kendo Grid in IE11












0














I've been using latest Kendo grid for ASP.NET MVC.



Data table specs are like this,




columns --> 25 to 35.



rows --> anywhere between 1500 to 5000.



client side paging --> 20 rows




Issue is, when I'm doing the scrolling, IE 11 takes upto 1s to display data depending on screen resolution and grid content height. Which causes the UI glitch.



When I ran IE UI Responsiveness from Dev Tools, I got the below results.



enter image description here



I get that whenever user does scrolling, browsers have to render the rows and it takes a bit time. But IE 11 takes it to a whole new level. The moment it has to process 3-4 more rows, it starts acting jumpy and glitchy.



I did the testing in Chrome (& opera), Firefox. In which performace was very decent.



I tried to refractor CSS to reduce styling, but there's very little bit change I could afford.



Please let me know what is the next step? Should I keep calm and blame IE?










share|improve this question






















  • use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
    – Rob Parsons
    May 31 '17 at 9:31










  • @RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
    – Prajwal
    May 31 '17 at 10:48










  • do you have virtualization on your grid?
    – NRW
    Jun 1 '17 at 20:38










  • @NRW No, I have local paging.
    – Prajwal
    Jun 2 '17 at 12:53
















0














I've been using latest Kendo grid for ASP.NET MVC.



Data table specs are like this,




columns --> 25 to 35.



rows --> anywhere between 1500 to 5000.



client side paging --> 20 rows




Issue is, when I'm doing the scrolling, IE 11 takes upto 1s to display data depending on screen resolution and grid content height. Which causes the UI glitch.



When I ran IE UI Responsiveness from Dev Tools, I got the below results.



enter image description here



I get that whenever user does scrolling, browsers have to render the rows and it takes a bit time. But IE 11 takes it to a whole new level. The moment it has to process 3-4 more rows, it starts acting jumpy and glitchy.



I did the testing in Chrome (& opera), Firefox. In which performace was very decent.



I tried to refractor CSS to reduce styling, but there's very little bit change I could afford.



Please let me know what is the next step? Should I keep calm and blame IE?










share|improve this question






















  • use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
    – Rob Parsons
    May 31 '17 at 9:31










  • @RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
    – Prajwal
    May 31 '17 at 10:48










  • do you have virtualization on your grid?
    – NRW
    Jun 1 '17 at 20:38










  • @NRW No, I have local paging.
    – Prajwal
    Jun 2 '17 at 12:53














0












0








0







I've been using latest Kendo grid for ASP.NET MVC.



Data table specs are like this,




columns --> 25 to 35.



rows --> anywhere between 1500 to 5000.



client side paging --> 20 rows




Issue is, when I'm doing the scrolling, IE 11 takes upto 1s to display data depending on screen resolution and grid content height. Which causes the UI glitch.



When I ran IE UI Responsiveness from Dev Tools, I got the below results.



enter image description here



I get that whenever user does scrolling, browsers have to render the rows and it takes a bit time. But IE 11 takes it to a whole new level. The moment it has to process 3-4 more rows, it starts acting jumpy and glitchy.



I did the testing in Chrome (& opera), Firefox. In which performace was very decent.



I tried to refractor CSS to reduce styling, but there's very little bit change I could afford.



Please let me know what is the next step? Should I keep calm and blame IE?










share|improve this question













I've been using latest Kendo grid for ASP.NET MVC.



Data table specs are like this,




columns --> 25 to 35.



rows --> anywhere between 1500 to 5000.



client side paging --> 20 rows




Issue is, when I'm doing the scrolling, IE 11 takes upto 1s to display data depending on screen resolution and grid content height. Which causes the UI glitch.



When I ran IE UI Responsiveness from Dev Tools, I got the below results.



enter image description here



I get that whenever user does scrolling, browsers have to render the rows and it takes a bit time. But IE 11 takes it to a whole new level. The moment it has to process 3-4 more rows, it starts acting jumpy and glitchy.



I did the testing in Chrome (& opera), Firefox. In which performace was very decent.



I tried to refractor CSS to reduce styling, but there's very little bit change I could afford.



Please let me know what is the next step? Should I keep calm and blame IE?







css3 internet-explorer kendo-ui internet-explorer-11 kendo-asp.net-mvc






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked May 31 '17 at 4:50









PrajwalPrajwal

2,150827




2,150827












  • use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
    – Rob Parsons
    May 31 '17 at 9:31










  • @RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
    – Prajwal
    May 31 '17 at 10:48










  • do you have virtualization on your grid?
    – NRW
    Jun 1 '17 at 20:38










  • @NRW No, I have local paging.
    – Prajwal
    Jun 2 '17 at 12:53


















  • use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
    – Rob Parsons
    May 31 '17 at 9:31










  • @RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
    – Prajwal
    May 31 '17 at 10:48










  • do you have virtualization on your grid?
    – NRW
    Jun 1 '17 at 20:38










  • @NRW No, I have local paging.
    – Prajwal
    Jun 2 '17 at 12:53
















use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
– Rob Parsons
May 31 '17 at 9:31




use the dev tool to inspect the style and attached events for scrolling of the parent element of the table... (that is the element that is used to scroll the content). You may like to change your design pattern and display the table in a parent with overflow auto, so that the table content is scrolled with the body's overflow rules.
– Rob Parsons
May 31 '17 at 9:31












@RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
– Prajwal
May 31 '17 at 10:48




@RobParsons Actually, I haven't added anything. It is in a simple view, with a tab-strip and grid. that's it. Only part I tried fixing is CSS, which wasn't useful.
– Prajwal
May 31 '17 at 10:48












do you have virtualization on your grid?
– NRW
Jun 1 '17 at 20:38




do you have virtualization on your grid?
– NRW
Jun 1 '17 at 20:38












@NRW No, I have local paging.
– Prajwal
Jun 2 '17 at 12:53




@NRW No, I have local paging.
– Prajwal
Jun 2 '17 at 12:53












3 Answers
3






active

oldest

votes


















0














The grid works fine on its own in IE11, my team uses it.
It could be you've added some code that's being executed excessively.



The UI responsiveness tool isn't very useful. Try using the profiler in IE's Dev tools. Open the page with the problematic grid in it, hit the green arrow of the profiler to start recording, scroll the grid a bit and then hit stop in the profiler.



Sort the results by Count, Inclusive time and Exclusive time and see what stands out. After each sort look at the top ~50 entries for code you wrote.

When sorting by Count, you might find a piece of code that while is pretty short, it runs hundreds of thousands of times in a loop for no reason because of a simple mistake.

Sorting by time can show you pieces of code that are very demanding and perhaps could be moved to other places.



For instance, it could be you're running some logic on the view like formatting a date. If you see such a function in the profiler, it would be better to move this logic to the data fetching phase before the view is rendered.






share|improve this answer





















  • The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
    – Prajwal
    Jun 4 '17 at 15:11



















0














There's an issue with a file named angular-material.css which causes a slow scroll like you describe. I've seen several places, like this one, that state removing the file or several lines in it solved the problem.



Are you using angular in your project? If you do, see if you have this file and try to remove it.






share|improve this answer





















  • No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
    – Prajwal
    Jun 5 '17 at 14:17





















0














Because this question crossed 1000 views, I'm obliged to answer on how I fixed my issue.



Turns out, rendering of IE is slow when it comes to bigger screen of HD/FHD resolutions. So, the solution I followed was to promote the grid to new layer by adding the following to grid's CSS class.



.promote-new-layer{
transform: rotate(0deg);
will-change: transform;
}


will-change might not work in all the browsers. Hence the fallback would be to use transform:rotate(0deg).



Please ensure while doing so, you are not promoting unnecessary nodes.






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',
    autoActivateHeartbeat: false,
    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%2f44275880%2fslow-performance-of-kendo-grid-in-ie11%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    The grid works fine on its own in IE11, my team uses it.
    It could be you've added some code that's being executed excessively.



    The UI responsiveness tool isn't very useful. Try using the profiler in IE's Dev tools. Open the page with the problematic grid in it, hit the green arrow of the profiler to start recording, scroll the grid a bit and then hit stop in the profiler.



    Sort the results by Count, Inclusive time and Exclusive time and see what stands out. After each sort look at the top ~50 entries for code you wrote.

    When sorting by Count, you might find a piece of code that while is pretty short, it runs hundreds of thousands of times in a loop for no reason because of a simple mistake.

    Sorting by time can show you pieces of code that are very demanding and perhaps could be moved to other places.



    For instance, it could be you're running some logic on the view like formatting a date. If you see such a function in the profiler, it would be better to move this logic to the data fetching phase before the view is rendered.






    share|improve this answer





















    • The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
      – Prajwal
      Jun 4 '17 at 15:11
















    0














    The grid works fine on its own in IE11, my team uses it.
    It could be you've added some code that's being executed excessively.



    The UI responsiveness tool isn't very useful. Try using the profiler in IE's Dev tools. Open the page with the problematic grid in it, hit the green arrow of the profiler to start recording, scroll the grid a bit and then hit stop in the profiler.



    Sort the results by Count, Inclusive time and Exclusive time and see what stands out. After each sort look at the top ~50 entries for code you wrote.

    When sorting by Count, you might find a piece of code that while is pretty short, it runs hundreds of thousands of times in a loop for no reason because of a simple mistake.

    Sorting by time can show you pieces of code that are very demanding and perhaps could be moved to other places.



    For instance, it could be you're running some logic on the view like formatting a date. If you see such a function in the profiler, it would be better to move this logic to the data fetching phase before the view is rendered.






    share|improve this answer





















    • The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
      – Prajwal
      Jun 4 '17 at 15:11














    0












    0








    0






    The grid works fine on its own in IE11, my team uses it.
    It could be you've added some code that's being executed excessively.



    The UI responsiveness tool isn't very useful. Try using the profiler in IE's Dev tools. Open the page with the problematic grid in it, hit the green arrow of the profiler to start recording, scroll the grid a bit and then hit stop in the profiler.



    Sort the results by Count, Inclusive time and Exclusive time and see what stands out. After each sort look at the top ~50 entries for code you wrote.

    When sorting by Count, you might find a piece of code that while is pretty short, it runs hundreds of thousands of times in a loop for no reason because of a simple mistake.

    Sorting by time can show you pieces of code that are very demanding and perhaps could be moved to other places.



    For instance, it could be you're running some logic on the view like formatting a date. If you see such a function in the profiler, it would be better to move this logic to the data fetching phase before the view is rendered.






    share|improve this answer












    The grid works fine on its own in IE11, my team uses it.
    It could be you've added some code that's being executed excessively.



    The UI responsiveness tool isn't very useful. Try using the profiler in IE's Dev tools. Open the page with the problematic grid in it, hit the green arrow of the profiler to start recording, scroll the grid a bit and then hit stop in the profiler.



    Sort the results by Count, Inclusive time and Exclusive time and see what stands out. After each sort look at the top ~50 entries for code you wrote.

    When sorting by Count, you might find a piece of code that while is pretty short, it runs hundreds of thousands of times in a loop for no reason because of a simple mistake.

    Sorting by time can show you pieces of code that are very demanding and perhaps could be moved to other places.



    For instance, it could be you're running some logic on the view like formatting a date. If you see such a function in the profiler, it would be better to move this logic to the data fetching phase before the view is rendered.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jun 4 '17 at 12:12









    ShaiShai

    1,6942623




    1,6942623












    • The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
      – Prajwal
      Jun 4 '17 at 15:11


















    • The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
      – Prajwal
      Jun 4 '17 at 15:11
















    The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
    – Prajwal
    Jun 4 '17 at 15:11




    The issue is, it works fine on smaller screens where row getting displayed is 6-7. But when bigger screen tries to display 15-20 records, it fails miserably. I've reduced it to CSS issue with IE. But I'm stuck there.
    – Prajwal
    Jun 4 '17 at 15:11













    0














    There's an issue with a file named angular-material.css which causes a slow scroll like you describe. I've seen several places, like this one, that state removing the file or several lines in it solved the problem.



    Are you using angular in your project? If you do, see if you have this file and try to remove it.






    share|improve this answer





















    • No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
      – Prajwal
      Jun 5 '17 at 14:17


















    0














    There's an issue with a file named angular-material.css which causes a slow scroll like you describe. I've seen several places, like this one, that state removing the file or several lines in it solved the problem.



    Are you using angular in your project? If you do, see if you have this file and try to remove it.






    share|improve this answer





















    • No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
      – Prajwal
      Jun 5 '17 at 14:17
















    0












    0








    0






    There's an issue with a file named angular-material.css which causes a slow scroll like you describe. I've seen several places, like this one, that state removing the file or several lines in it solved the problem.



    Are you using angular in your project? If you do, see if you have this file and try to remove it.






    share|improve this answer












    There's an issue with a file named angular-material.css which causes a slow scroll like you describe. I've seen several places, like this one, that state removing the file or several lines in it solved the problem.



    Are you using angular in your project? If you do, see if you have this file and try to remove it.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jun 5 '17 at 13:00









    ShaiShai

    1,6942623




    1,6942623












    • No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
      – Prajwal
      Jun 5 '17 at 14:17




















    • No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
      – Prajwal
      Jun 5 '17 at 14:17


















    No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
    – Prajwal
    Jun 5 '17 at 14:17






    No I don't use Angular. I did get the fact that it is from CSS. But I did remove everything I wrote (almost). Only Kendo CSS is left. Am I the only person facing this issue? No one who uses Kendo is facing it?
    – Prajwal
    Jun 5 '17 at 14:17













    0














    Because this question crossed 1000 views, I'm obliged to answer on how I fixed my issue.



    Turns out, rendering of IE is slow when it comes to bigger screen of HD/FHD resolutions. So, the solution I followed was to promote the grid to new layer by adding the following to grid's CSS class.



    .promote-new-layer{
    transform: rotate(0deg);
    will-change: transform;
    }


    will-change might not work in all the browsers. Hence the fallback would be to use transform:rotate(0deg).



    Please ensure while doing so, you are not promoting unnecessary nodes.






    share|improve this answer


























      0














      Because this question crossed 1000 views, I'm obliged to answer on how I fixed my issue.



      Turns out, rendering of IE is slow when it comes to bigger screen of HD/FHD resolutions. So, the solution I followed was to promote the grid to new layer by adding the following to grid's CSS class.



      .promote-new-layer{
      transform: rotate(0deg);
      will-change: transform;
      }


      will-change might not work in all the browsers. Hence the fallback would be to use transform:rotate(0deg).



      Please ensure while doing so, you are not promoting unnecessary nodes.






      share|improve this answer
























        0












        0








        0






        Because this question crossed 1000 views, I'm obliged to answer on how I fixed my issue.



        Turns out, rendering of IE is slow when it comes to bigger screen of HD/FHD resolutions. So, the solution I followed was to promote the grid to new layer by adding the following to grid's CSS class.



        .promote-new-layer{
        transform: rotate(0deg);
        will-change: transform;
        }


        will-change might not work in all the browsers. Hence the fallback would be to use transform:rotate(0deg).



        Please ensure while doing so, you are not promoting unnecessary nodes.






        share|improve this answer












        Because this question crossed 1000 views, I'm obliged to answer on how I fixed my issue.



        Turns out, rendering of IE is slow when it comes to bigger screen of HD/FHD resolutions. So, the solution I followed was to promote the grid to new layer by adding the following to grid's CSS class.



        .promote-new-layer{
        transform: rotate(0deg);
        will-change: transform;
        }


        will-change might not work in all the browsers. Hence the fallback would be to use transform:rotate(0deg).



        Please ensure while doing so, you are not promoting unnecessary nodes.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 '18 at 7:39









        PrajwalPrajwal

        2,150827




        2,150827






























            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%2f44275880%2fslow-performance-of-kendo-grid-in-ie11%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

            Xamarin.iOS Cant Deploy on Iphone

            Glorious Revolution

            Dulmage-Mendelsohn matrix decomposition in Python