I'm loading about 2000 child nodes under a single parent. It works fine with Firefox 3.6 and with Chrome 9, but IE 8 is incredibly slow... not only loading the child nodes, but after the child nodes are loaded the whole interface slows down and turns unresponsive.
I'm using Q1 2010. Any tips to solve this performance issue with IE 8? Should I try to upgrade to Q3 2010?
Thanks,
Santiago.
I'm using Q1 2010. Any tips to solve this performance issue with IE 8? Should I try to upgrade to Q3 2010?
Thanks,
Santiago.
3 Answers, 1 is accepted
0
Hi Santiago,
Could you, please, post an example of how exactly do you load the nodes?
I am sure we will be able to suggest something.
Regards,
Nikolay Tsenkov
the Telerik team
Could you, please, post an example of how exactly do you load the nodes?
I am sure we will be able to suggest something.
Regards,
Nikolay Tsenkov
the Telerik team
Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
0
Santiago
Top achievements
Rank 1
answered on 16 Feb 2011, 11:22 PM
Here is a simple code example.
Markup code:
Code behind:
Custom provider:
Everything works fine with Firefox and Chrome, but with IE8 when I expand the folder "2" I get a script warning like this:
"---------------------------
Windows Internet Explorer
---------------------------
Stop running this script?
A script on this page is causing your web browser to run slowly.
If it continues to run, your computer might become
unresponsive.
---------------------------
Yes No
---------------------------"
And after the child nodes are loaded every action seems to have a little lag (e.g. click on the tree scroll).
P.S.: I just realized maybe this isn't the right forum for this issue. If this is the case, could you please move the thread to the FileExplorer forum?
All the best,
Santiago.
Markup code:
<telerik:RadFileExplorer ID="RadFileExplorer1" runat="server" Configuration-ViewPaths="/"></telerik:RadFileExplorer>Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.RadFileExplorer1.Configuration.ContentProviderTypeName = GetType(FileProvider).AssemblyQualifiedNameEnd SubImports Telerik.Web.UI.WidgetsImports Telerik.Web.UIPublic Class FileProvider Inherits FileSystemContentProvider Public Sub New(ByVal context As HttpContext, ByVal searchPatterns As String(), ByVal viewPaths As String(), _ ByVal uploadPaths As String(), ByVal deletePaths As String(), ByVal selectedUrl As String, _ ByVal selectedItemTag As String) MyBase.New(context, searchPatterns, viewPaths, uploadPaths, deletePaths, selectedUrl, selectedItemTag) End Sub Private Function GetDirectoryRoot() As Telerik.Web.UI.Widgets.DirectoryItem Dim dir = New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "/", .FullPath = "/", .Files = New Telerik.Web.UI.Widgets.FileItem() {}} Dim childs As New List(Of Telerik.Web.UI.Widgets.DirectoryItem) childs.Add(New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "1", .FullPath = "/1"}) childs.Add(New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "2", .FullPath = "/2"}) childs.Add(New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "3", .FullPath = "/3"}) dir.Directories = childs.ToArray Return dir End Function Private Function GetDirectory1() As Telerik.Web.UI.Widgets.DirectoryItem Return New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "1", .FullPath = "/1", .Directories = New Telerik.Web.UI.Widgets.DirectoryItem() {}, .Files = New Telerik.Web.UI.Widgets.FileItem() {}} End Function Private Function GetDirectory2() As Telerik.Web.UI.Widgets.DirectoryItem Dim dir = New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "2", .FullPath = "/2", .Files = New Telerik.Web.UI.Widgets.FileItem() {}} Dim childs As New List(Of Telerik.Web.UI.Widgets.DirectoryItem) For i = 0 To 2000 childs.Add(New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = i.ToString, .FullPath = "/2/" & i}) Next dir.Directories = childs.ToArray Return dir End Function Private Function GetDirectory3() As Telerik.Web.UI.Widgets.DirectoryItem Return New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = "3", .FullPath = "/3", .Directories = New Telerik.Web.UI.Widgets.DirectoryItem() {}, .Files = New Telerik.Web.UI.Widgets.FileItem() {}} End Function Public Overrides Function ResolveRootDirectoryAsTree(ByVal path As String) As Telerik.Web.UI.Widgets.DirectoryItem Return ResolveDirectory(path) End Function Public Overrides Function ResolveDirectory(ByVal path As String) As Telerik.Web.UI.Widgets.DirectoryItem Select Case path Case "/" Return GetDirectoryRoot() Case "/1" Return GetDirectory1() Case "/2" Return GetDirectory2() Case "/3" Return GetDirectory3() Case Else Return New Telerik.Web.UI.Widgets.DirectoryItem With {.Name = path, .FullPath = path, .Directories = New Telerik.Web.UI.Widgets.DirectoryItem() {}, .Files = New Telerik.Web.UI.Widgets.FileItem() {}} End Select End Function Public Overrides Function GetPath(ByVal url As String) As String Return url End FunctionEnd ClassEverything works fine with Firefox and Chrome, but with IE8 when I expand the folder "2" I get a script warning like this:
"---------------------------
Windows Internet Explorer
---------------------------
Stop running this script?
A script on this page is causing your web browser to run slowly.
If it continues to run, your computer might become
unresponsive.
---------------------------
Yes No
---------------------------"
And after the child nodes are loaded every action seems to have a little lag (e.g. click on the tree scroll).
P.S.: I just realized maybe this isn't the right forum for this issue. If this is the case, could you please move the thread to the FileExplorer forum?
All the best,
Santiago.
0
Hi Santiago,
In the following help article you can find a detailed explanation of how the RadFileExplorer's content provider works:
Using custom FileBrowserContentProvider
The method ResolveRootDirectoryAsTree() is used to populate the TreeView and the folders in the Grid, and it is called for all first level children of the root folder, while the ResolveDirectory() method is used only to populate the files in the Grid. In the provided code I noticed that you are explicitly calling ResolveDirectory() in the ResolveRootDirectoryAsTree() and if the folders contain large amount of files this may slow the performance of the explorer. At this moment, it is not possible to modify this behavior of the control.
In addition, do you experience the same issue under Internet Explorer 8 using the default content provider of RadFileExplorer?
All the best,
Dobromir
the Telerik team
In the following help article you can find a detailed explanation of how the RadFileExplorer's content provider works:
Using custom FileBrowserContentProvider
The method ResolveRootDirectoryAsTree() is used to populate the TreeView and the folders in the Grid, and it is called for all first level children of the root folder, while the ResolveDirectory() method is used only to populate the files in the Grid. In the provided code I noticed that you are explicitly calling ResolveDirectory() in the ResolveRootDirectoryAsTree() and if the folders contain large amount of files this may slow the performance of the explorer. At this moment, it is not possible to modify this behavior of the control.
In addition, do you experience the same issue under Internet Explorer 8 using the default content provider of RadFileExplorer?
All the best,
Dobromir
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!