查询获取旧数据 Windows Phone 8



当我运行查询时,我的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 将缓存所有请求(虽然不知道持续时间,但很长(。

您可以:

  1. 在服务器上设置"缓存控制:无缓存"标头。
  2. 向每个请求添加一个随机数(或时间戳(,以便 uri 不同。
  3. 尝试将"if-modified-since"标头添加到您的请求中。

有关详细信息,请参阅此问题。

最新更新