当我运行查询时,我的WP8应用程序正在获取旧数据而不是更新数据:
private async Task fetchParseData()
{
try
{
var query = ParseObject.GetQuery("Favorite")
.WhereEqualTo("user", ParseUser.CurrentUser.Username);
IEnumerable<ParseObject> results = await query.FindAsync();
this.favorites.Clear();
foreach (ParseObject result in results)
{
string venue = result.Get<string>("venue");
string address = result.Get<string>("address");
string likes = result.Get<string>("likes");
string price = result.Get<string>("price");
string contact = result.Get<string>("contact");
this.favorites.Add(new ItemViewModel { LineOne = venue, LineTwo = address, LineThree = likes, Rating = "", Hours = "", Contact = contact, Price = price, Latitude = "", Longitude = "" });
}
if (favorites.Count == 0)
{
// emailPanorama.DefaultItem = emailPanorama.Items[1];
MessageBox.Show("You do not have any saved cafes. Long press a cafe in main menu to save it.");
}
}
catch (Exception exc)
{
MessageBox.Show("Data could not be fetched!", "Error", MessageBoxButton.OK);
}
}
您能否帮助我在此查询中找到问题所在。我调试并仅在这部分发现错误。 因此,query.findasync()
方法未获取我的新数据。
Windows Phone Web Cache非常激进。
如果您正在查询的施维耶没有在 http 标头中显式设置缓存持续时间,Windows Phone 将缓存所有请求(虽然不知道持续时间,但很长(。
您可以:
- 在服务器上设置"缓存控制:无缓存"标头。
- 向每个请求添加一个随机数(或时间戳(,以便 uri 不同。
- 尝试将"if-modified-since"标头添加到您的请求中。
有关详细信息,请参阅此问题。