Here's an example showing that it takes 1s to parse the ExtJS and ExtNET script files. This is with the files cached on the browser so it's the time to just parse the files. It also takes 2-3s to render the Ext components. This is a very basic example. Our pages are often more complex than this. A similar example in Ext 1.x would be done in 1s or so total. Now it's 4s. That's a HUGE difference to our end users.
I am using a virtual machine with IE7, WinXP, 2 gig of ram, and 2.4GHZ single core.
<script runat="server">
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.ResourceManager1.RegisterBeforeClientInitScript("this.startPoint = new Date();")
Me.ResourceManager1.Listeners.DocumentReady.Handler = "alert('Ext Components - ' + (new Date() - this.startPoint).toString());"
End Sub
Protected Sub storeTree_OnReadData(ByVal sender As Object, ByVal e As Ext.Net.NodeLoadEventArgs)
For i As Integer = 0 To 49
e.Nodes.Add(New Ext.Net.Node() With {.Text = "Node " + i.ToString})
Next
End Sub
Private Sub storePlans_RefreshData(ByVal sender As Object, ByVal e As Ext.Net.StoreReadDataEventArgs) Handles storePlans.ReadData
Me.storePlans.DataSource = GetGridData()
Me.storePlans.DataBind()
End Sub
Private Function GetGridData() As IEnumerable
Dim list As New System.Collections.Generic.List(Of Object)
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
list.Add(New With {.ENTITYGUID = Guid.NewGuid(), .Column1 = "Test", .Column2 = "Test2", .Column3 = "Test3", .Column4 = "Test4", .Column5 = "Test5", .Column6 = "Test6", .Column7 = "Test7", .Column8 = "Test8", .Column9 = "Test9", .Column10 = "Test10", .Column11 = "Test11", .Column12 = "Test12"})
Return list.GetRange(0, 25)
End Function
</script>
<html>
<script>
window.startTime = new Date();
</script>
<head id="Head1" runat="server">
<title>Test Page </title>
<script>
alert('Script Parsing - ' + (new Date() - window.startTime).toString());
window.startTime = new Date();
</script>
</head>
<body>
<script type="text/javascript">
</script>
<form id="Form1" runat="server">
<ext:ResourceManager ID="ResourceManager1" runat="server" ScriptMode="Debug" Theme="Gray"
DisableViewState="true" />
<ext:Viewport ID="Viewport1" runat="server" Layout="FitLayout">
<Bin>
<ext:Store runat="server" ID="storePlans" WarningOnDirty="false" AutoLoad="true"
RemoteSort="true" ShowWarningOnFailure="false">
<Proxy>
<ext:PageProxy>
<RequestConfig Timeout="180000">
</RequestConfig>
<Reader>
<ext:JsonReader>
</ext:JsonReader>
</Reader>
</ext:PageProxy>
</Proxy>
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="ENTITYGUID">
<Fields>
<ext:ModelField Name="ENTITYGUID">
</ext:ModelField>
<ext:ModelField Name="Column1">
</ext:ModelField>
<ext:ModelField Name="Column2">
</ext:ModelField>
<ext:ModelField Name="Column3">
</ext:ModelField>
<ext:ModelField Name="Column4">
</ext:ModelField>
<ext:ModelField Name="Column5">
</ext:ModelField>
<ext:ModelField Name="Column6">
</ext:ModelField>
<ext:ModelField Name="Column7">
</ext:ModelField>
<ext:ModelField Name="Column8">
</ext:ModelField>
<ext:ModelField Name="Column9">
</ext:ModelField>
<ext:ModelField Name="Column10">
</ext:ModelField>
<ext:ModelField Name="Column11">
</ext:ModelField>
<ext:ModelField Name="Column12">
</ext:ModelField>
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Bin>
<Items>
<ext:Container ID="Container1" runat="server">
<LayoutConfig>
<ext:BorderLayoutConfig>
</ext:BorderLayoutConfig>
</LayoutConfig>
<Items>
<ext:TreePanel runat="server" ID="treeStrataAjax" UseArrows="true" Width="300" Region="West">
<Store>
<ext:TreeStore ID="storeTree" runat="server" OnReadData="storeTree_OnReadData">
<Proxy>
<ext:PageProxy>
</ext:PageProxy>
</Proxy>
</ext:TreeStore>
</Store>
<Root>
<ext:Node Text="Root">
</ext:Node>
</Root>
</ext:TreePanel>
<ext:Container ID="Container2" runat="server" Region="Center" Visible="true">
<LayoutConfig>
<ext:VBoxLayoutConfig Align="Stretch">
</ext:VBoxLayoutConfig>
</LayoutConfig>
<Items>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:TabStrip runat="server" ID="tabs" Height="25" Plain="true">
<Items>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
<ext:Tab Text="Tab1">
</ext:Tab>
</Items>
</ext:TabStrip>
</Items>
</ext:Toolbar>
<ext:GridPanel runat="server" ID="gridPlans" StoreID="storePlans" TrackMouseOver="true"
SelectionMemory="false" EnableColumnHide="false" Cls="x-grid-dir" EnableDragDrop="true"
DDGroup="DDGrid" Flex="1" AutoScroll="true">
<TopBar>
<ext:Toolbar runat="server" ID="tbTop">
<Items>
<ext:Button ID="Button1" runat="server" Text="Change Tab Title">
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<BottomBar>
<ext:PagingToolbar runat="server" ID="gridPager" StoreID="storePlans">
</ext:PagingToolbar>
</BottomBar>
<ColumnModel>
<Columns>
<ext:RowNumbererColumn ID="RowNumbererColumn1" runat="server" Locked="true">
</ext:RowNumbererColumn>
<ext:Column ID="Column1" DataIndex="Column1" runat="server" Width="200" Locked="true">
</ext:Column>
<ext:Column ID="Column2" DataIndex="Column2" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column3" DataIndex="Column3" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column4" DataIndex="Column4" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column5" DataIndex="Column5" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column6" DataIndex="Column6" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column7" DataIndex="Column7" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column8" DataIndex="Column8" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column9" DataIndex="Column9" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column10" DataIndex="Column10" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column11" DataIndex="Column11" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column12" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column13" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column14" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column15" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column16" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column17" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column18" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
<ext:Column ID="Column19" DataIndex="Column12" runat="server" Width="100">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel Mode="Multi">
</ext:RowSelectionModel>
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Container>
</Items>
</ext:Container>
</Items>
</ext:Viewport>
</form>
</body>
</html>