我有一个Windows Phone 8应用程序,我想知道为什么我的主页加载非常缓慢。
我的主页结构如下:
<PivotControl>
<PivotItem>
<LongListSelector/>
</PivotItem> Times 5
</PivotControl>
我一共有5个PivotItems,每个项目都有自己的API调用以获取项目并显示它们。每个PivotItem首先加载12个元素,然后在用户开始滚动时再加载更多。
我的问题是,是否有人遇到过主页面有大量元素的问题?你做了哪些改进使页面加载更快?我已经减少了我展示的元素数量(之前在每个PivotItem中加载了40个元素)。
编辑: 我的ListItemTemplate非常干净(我已经清理过它以使XAML代码更轻),它有一个包含InvokeCommandAction的Grid,一个图像,一个边框和3个TextBlocks。
编辑2: 通过在用户不在我的PivotItem上时折叠不同的LongListSelector,我已经在加载时间上获得了约30%的提升,因此我正在隐藏2个LongListSelector。我在中间显示右侧的PivotItem(当然),并在左侧,当用户向左或向右滑动时重新加载和隐藏必要的元素。虽然不太美观但很有用。
编辑3: 几乎(90%)所有样式都已放置在我的StylePage中,并被调用来为我的元素设置样式。我发现在用户进入和离开页面时添加一点动画可以让页面之间的转换更加平滑。这是我的经典转换代码:
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn" />
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn" />
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut" />
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut" />
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>