如何在windows phone 8.1应用程序中快速从URL获取JSON数据
本文关键字:URL 获取 数据 JSON 应用程序 windows phone | 更新日期: 2023-09-27 18:17:13
我正在开发一个windows phone应用程序。
在这个应用程序中,我从服务URL和绑定到列表框中获取JSON数据。在这个JSON数据中有2500个城市。这些城市从服务和绑定到列表框需要5分钟的时间。
那么如何从服务中快速获取数据呢?请帮帮我。
代码如下:
public async void insertcities()
{
try
{
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
var busclient = new Newpavanapp.JsonWebClient();
var Busresp1 = await busclient.DoRequestAsync(Url.weburl + "getCities");
string Busresult1 = Busresp1.ReadToEnd();
JArray BusjsonArray = JArray.Parse(Busresult1);
for (int j = 0; j < BusjsonArray.Count; j++)
{
JObject jobj = (JObject)BusjsonArray[j];
string id = (string)jobj["cityid"];
string cityname = (string)jobj["cityname"];
city cit = new city();
cit.cityname = cityname;
Fromcityname1.Items.Add(cityname);
Tocityname1.Items.Add(cityname);
Db_Helper.Insert(new Buscities(id, cityname));
UserProfileList.Add(cit);
// citieslist.Add(cityname);
}
});
好的,那么首先:你的代码片段不足以重现问题,但我认为你的代码获取数据是好的,你有绑定问题。
你写的:
这些城市从服务到绑定到列表框需要5分钟的时间。
检查,下载数据不绑定需要多少时间。因为绑定可能是最耗时的操作。如果你尝试绑定2500个元素,而你不使用虚拟化,这在windows phone上可能会出现问题。尝试将listview与虚拟化一起使用(它可能很有帮助)。
@Update (17:30 - 12.10.2015)
是的。它下载数据快。但是每当绑定数据的时候只需要时间。那我该怎么办呢?请帮帮我。请给我任何样品。
好的,在我看来:您不应该同时绑定所有元素。阅读关于列表框中的增量加载(当滚动到底部时加载更多项目到列表框)。您可以下载所有的项目,并添加到itemssource只有其中的一部分,并在用户滚动到结束后加载更多。