I have noticed a rather dramatic client-side performance difference, depending if the Telerik control is hosted in an ordinary ASP.NET page or in a WSS page. Also, the rendering time is very different depending on the browser, FF 3 is much faster than IE7.
I have a test-case where rendering in WSS is ~4 times slower than in ASP.NET. And FF3 is up to 5 times faster than IE7 in the same test.
Here's some data for rendering a RadTreeView-control with 1365 nodes:
WSS, IE7: 20 secs
ASP.NET, IE7: 6 secs
WSS, FF3: 4 secs
ASP.NET, FF3: 2,7 secs
(I know it's not advisable with so many nodes in a tree, but it makes the performance difference more obvious).
This is just one case where the difference is obvious. All my test-cases, including RadTreeView and RadGrid, shows similar performance.
Can anyone explain why rendering is so much slower in WSS than ASP.NET, and why IE7 is so much slower than FF3?
At first, I thought it could be because, in WSS, the Rad-control lives "deeper" in the DOM, since a WSS-page is filled with tables-in-tables-in-divs-etc-etc. Lots of Telerik-script walks up the DOM using constructs like this:
while (node)
{
if (dosometest(node)) return true;
node = node.parentNode;
}
return false;
This could explain the performance difference, since the script would walk all the way up to the DOM-root if dosometest returns false. I turns out that this does not explain the ASP.NET/WSS performance difference, I manually added nested DIVs in an ASP.NET page, to simulate a WSS-page's depth, and there was still a huge performance difference. Nevertheless, perhaps Telerik should consider a more clever condition to test for than while(node), to reduce iterating the DOM-tree unnessarily.
For the IE7 vs FF3 difference, I have no idea why this is.
It would be interesting to know the reason for these differences, but of course much more interesting to know if there's a work-around.
I can provide the code that generates the data above. I should mention that rendering takes place async, I use ASP.NET's UpdatePanel.
/Fredrik
I have a test-case where rendering in WSS is ~4 times slower than in ASP.NET. And FF3 is up to 5 times faster than IE7 in the same test.
Here's some data for rendering a RadTreeView-control with 1365 nodes:
WSS, IE7: 20 secs
ASP.NET, IE7: 6 secs
WSS, FF3: 4 secs
ASP.NET, FF3: 2,7 secs
(I know it's not advisable with so many nodes in a tree, but it makes the performance difference more obvious).
This is just one case where the difference is obvious. All my test-cases, including RadTreeView and RadGrid, shows similar performance.
Can anyone explain why rendering is so much slower in WSS than ASP.NET, and why IE7 is so much slower than FF3?
At first, I thought it could be because, in WSS, the Rad-control lives "deeper" in the DOM, since a WSS-page is filled with tables-in-tables-in-divs-etc-etc. Lots of Telerik-script walks up the DOM using constructs like this:
while (node)
{
if (dosometest(node)) return true;
node = node.parentNode;
}
return false;
This could explain the performance difference, since the script would walk all the way up to the DOM-root if dosometest returns false. I turns out that this does not explain the ASP.NET/WSS performance difference, I manually added nested DIVs in an ASP.NET page, to simulate a WSS-page's depth, and there was still a huge performance difference. Nevertheless, perhaps Telerik should consider a more clever condition to test for than while(node), to reduce iterating the DOM-tree unnessarily.
For the IE7 vs FF3 difference, I have no idea why this is.
It would be interesting to know the reason for these differences, but of course much more interesting to know if there's a work-around.
I can provide the code that generates the data above. I should mention that rendering takes place async, I use ASP.NET's UpdatePanel.
/Fredrik