Coproject – demo RIA aplikace krok za krokem, díl 10,5
Jestli jste sledovali využití procesoru CoProjectem, nejspíše jste si všimli obrovského nárůstu zatížení v modulu To do po prvním načtení dat.
Jde o docela běžný problém, který se obvykle vyskytuje při použití prvků BusyIndicator nebo ProgressBar. Při hledání řešení jsem narazil například na tyto příspěvky: Silverlight forum, Silverlight toolkit issue, Appsolo blog. Po dalším hledání jsem narazil pouze na toto fórum. Naštěstí jsem ale narazil na toto video (vřele doporučuji): Silveright TV episode 57.
Když budeme chtít znalosti z videa využít v Coprojectu, měli bychom nejprve upravit App.xaml.cs:
private void Application_Startup(object sender, StartupEventArgs e) { Application.Current.Host.Settings.EnableRedrawRegions = true; }
Teď spusťte aplikaci, otevřete modul To do a načtěte data ze serveru (pozor, pokud trpíte epilepsií!). Jak je vidět, máme problém.
Pojďme zkusit aplikovat řešení navrhované ve videu – upravte ShellView následovně:
<grid x:name="LayoutRoot"> <border style="{StaticResource ContentBorderStyle}"> <contentcontrol style="{StaticResource LogoIcon}"> </contentcontrol></border> <border style="{StaticResource LeftBorderStyle}"> <textblock style="{StaticResource ApplicationTitleStyle}" text="Coproject"> ...</textblock></border></grid>
Pak už jen upravte LeftBorderStyle v Custom.xaml:
<style basedon="{StaticResource LinksBorderStyle}" targettype="Border" type="text/css" x:key="LeftBorderStyle"> <Setter Property="Margin" Value="10,135,25,0"/></style>
Spusťte aplikaci – překreslování obrazovky teď funguje, jak má, a i zatížení procesoru je zpět na rozumné úrovni.
Komentáře