【问题标题】:Windows Phone 7 - Best Practices for Speeding up Data FetchWindows Phone 7 - 加速数据获取的最佳实践
【发布时间】:2011-03-15 14:28:11
【问题描述】:
我有一个 Windows Phone 7 应用程序,它(当前)调用 OData 服务来获取数据,并将数据扔到一个列表框中。现在速度慢得可怕。我能想到的第一件事是因为 OData 返回的数据比我实际需要的要多。
对于加快在 Windows Phone 7 应用中获取数据的速度有哪些建议/最佳做法?我可以在应用程序中做些什么来加快数据的检索并更快地呈现在用户面前?
【问题讨论】:
标签:
web-services
windows-phone-7
odata
wcf-data-services
【解决方案1】:
听起来你已经有了一些关于追逐什么的线索。
我会尝试的一些基本操作是:
- 使您的 HTTP 请求尽可能小 - 如果可能,只获取您绝对需要的实体和字段。
- 考虑使用多个 HTTP 请求以增量方式获取数据,而不是一次性获取所有数据(当然,这实际上会使应用变慢,但通常会让应用感觉更快)
- 对于大文本传输,请确保正在压缩内容以进行传输(这应该发生在 HTTP 级别)
- 请注意,呈现数据的 XAML 不要过于臃肿 - 列表中重复的大型 XAML 结构可能会导致速度变慢。
- 在优化时,永远不要假设您知道速度问题出在哪里 - 始终先测量!
- 将图像插入列表时要小心 - MS MarketPlace 应用程序在我的手机上似乎经常卡顿 - 我认为这是由图像获取和渲染过程引起的。
【解决方案3】:
作为斯图尔特列表的扩展:
实际上有 3 个领域 - 通信、解析、UI。分别测量它们:
- 仅在处理关闭的情况下进行通信。
- 测量固定 ODATA 格式字符串的解析。
信不信也可以是UI。
例如,错误地使用 ProgressBar 会导致处理速度急剧下降。 (一般情况下,您不应使用here 解释的任何 UI 动画。)
另外,请确保 UI 处理不会阻塞数据通信。