Slow performance of Kendo Grid in IE11
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.
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
add a comment |
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.
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
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
add a comment |
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.
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
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.
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
css3 internet-explorer kendo-ui internet-explorer-11 kendo-asp.net-mvc
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
add a comment |
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
add a comment |
3 Answers
3
active
oldest
votes
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.
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
add a comment |
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.
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
add a comment |
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
add a comment |
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.
add a comment |
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.
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.
answered Nov 13 '18 at 7:39
PrajwalPrajwal
2,150827
2,150827
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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