提高页面加载速度
Posted
技术标签:
【中文标题】提高页面加载速度【英文标题】:Increase page loading speed 【发布时间】:2011-05-25 06:10:41 【问题描述】:在我的应用程序中,我有一个全景页面,其中包含大约 10 个全景项目。每个全景项目都有一些路径图、一个列表选择器和几个输入字段。我面临的问题是,当我导航到此页面时,由于要初始化的内容很多,导航速度非常慢。如果我评论了
InitializeComponent();
加载变得很快。我想在代码中添加 XAML 内容,但问题是我必须通过代码中的名称访问输入字段,所以它没有没用。知道如何加快页面导航速度。谢谢..
【问题讨论】:
“我想在代码中添加 XAML 内容,但问题是我必须通过代码中的名称访问输入字段,所以没有成功。”如果您真的觉得这会有所帮助,并且我怀疑除非您只是懒惰地初始化字段,那么您可以简单地使用预期的名称创建您的 own 实例变量。该语句暗示,您要么需要在必要时延迟加载组件,在多个线程中在后台加载它们(仅在 UI 线程中绘制),要么优化现有字段的初始化。没有代码很难说。 【参考方案1】:来自UI Guide:
使用单色背景 或跨越整个的图像 全景。如果您决定使用 图像,任何 UI 图像类型 Silverlight 支持的是 可以接受,但建议使用 JPEG, 因为他们通常有较小的文件 尺寸比其他格式。
您可以使用多个图像作为 背景,但你应该注意 只应显示一张图像 任何给定的时间。
背景图片应介于 480 x 800 像素和 1024 x 800 像素 (宽x高)确保良好 性能、最小的加载时间和无缩放。
考虑隐藏全景图部分 直到他们有内容要显示。
此外,10 个 PanoramaItems 似乎很多,因为建议的最大值是 4 个。您应该减少数量,或者在需要之前隐藏内容。在MSDN 上阅读全景图的最佳实践指南。
【讨论】:
【参考方案2】:我认为您可以通过为特定全景项目创建用户控件来提高页面性能,向您的页面添加一个空的全景控件(只有标题),并且 picypg 建议在需要时加载这些用户控件。
另一种方式可能是您加载第一页并已向用户显示该页面。在后台您可以开始加载其他全景项目。
我建议的方法是第一种。使用延迟加载原理。
【讨论】:
【参考方案3】:我会假设您的延迟是由于页面上的项目数量。这将导致一个非常大的对象图,需要很长时间才能创建。我还预计它会使用大量内存,并且填充率非常高,这会降低 GPU 的速度。
如果您不小心,PanoItems 上的输入项/字段可能会导致用户体验问题。
这么多 panoItems 也可能给用户带来潜在的导航问题。
【讨论】:
@Amresh,使用枢轴会延迟某些项目的加载,因此可以改善启动,但是 10 个项目比您可能想要放入枢轴的要多(建议最多为 7 个)。 Panorama 和 Pivot 用于不同的目的,因此直接替换并不是一个好主意。也许重新考虑设计以将某些功能移动到其他页面。以上是关于提高页面加载速度的主要内容,如果未能解决你的问题,请参考以下文章