Dlouhy prechod mezi strankami

Vše okolo vývoje aplikací pro platformy Windows Phone a Windows 10 Mobile
Post Reply
rybar73
přispěvatel
přispěvatel
Posts: 134
Joined: Tue Sep 22, 2009 9:53
Zařízení: Samsung B7610, Samsung Omnia 7
Location: Kopřivnice

Dlouhy prechod mezi strankami

Post by rybar73 »

Zdravim,
posledni dobou se snazim optimalizovat svou aplikaci, aby hlavne nacitani a prechody stranek behaly co nejrychleji. Vsude na netu jsem se docetl ruzne postupy, ale prece jen porad to neni ono. Chtel bych se teda zeptat vas, co pouzivate za postupy.
Muj problem je predevsim pravdepodobne v Unloadu predchozi stranky. Mam na hlavni strance pomerne dost objektu, ktere maji i sve vlastni animace a pokud vim, tak prechod na hlavni stranku je v poradi.
1.Konstruktor
2.OnNavigateTo (nebo From)
3.parsovani XAML - tedy vykresleni ???
4.event Loaded (az zde nastavuju DataContext)
5. a zde mi nastava prodleva kolem 1-3s cerne obrzovky se zmenenym jen AppBarem, kdy se zacinaji volat Unload.
Suma sumarum prechod ze stranky 1 na stranu 2 klidne trva i 4s skarede cerne obrazovky, kdy od bodu 1 do 5 je cas do 2s. Strana 2 pak obsahuje Panoramu s 5 Itemy na kazdem je listbox.

Bohuzel WP nepodporuje cachovani stranky, ktere by snad mohlo problem vyresit a ani reseni pomoci stridani UserControl namisto stranek se mi nezda prilis elegantni. A protoze ani po performance analyze nejsem o moc chytrejsi, rozhodl jsem se zeptat vas :-)
Takze jake mate zkusenosti s timto problemem, nebo muzete mi doporucit jak tento problem vyresit co nejefektivneji?
steelspace
smartmaniak
smartmaniak
Posts: 1094
Joined: Wed Nov 24, 2010 22:29
Zařízení: L920, L930, L950 XL, iPhone 7 Plus
Location: Líbeznice

Dlouhy prechod mezi strankami

Post by steelspace »

Já jsem takový problém nikdy neměl. Obecně by se v kódu vykonávaném v UI vlákně nemělo vykonávat nic náročného nebo dlouhotrvajícího. Chce to minimalizovat počet a složitost objektů na stránce, používat správně kontejnery (grid s rows/column místo stackpanelů), používat virtualizované kontrolky a případně natahovat kontrolky/data dynamicky až v momentě zobrazení nebo zpožděně. Kód vykonávající něco náročnějšího je třeba vykonávat v BackgroundWorkeru, aby nebrzdil UI.
Animace je dobré zastavit ve chvíli, kdy nejsou vidět (třeba v panoramě nebo pivotu).
Post Reply

Return to “Programování a vývoj”

Who is online

Users browsing this forum: No registered users and 1 guest