首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Win RT Phone 8.1应用程序:只有当互联网在移动上运行时,才能清除页面缓存

Win RT Phone 8.1应用程序:只有当互联网在移动上运行时,才能清除页面缓存
EN

Stack Overflow用户
提问于 2015-08-18 07:08:41
回答 2查看 103关注 0票数 0

我在我的应用程序中应用了这个博客描述的缓存,但是我不想在返回时清除页面缓存。

我想要的是,如果用户导航到该页面,检查internet,然后如果internet正在工作,清除缓存并进行服务调用,并再次在缓存中显示和保存数据,如果internet不工作,则显示缓存的数据,而不进行internet调用。分享我的代码,这样你就能清楚地了解我想做什么。

页面加载事件:

代码语言:javascript
复制
        void ProfilePage_Loaded(object sender, RoutedEventArgs e)
    {
        if (Helper.IsConnectedToInternet())
        {
            ResetPageCache();
            GetData();
        }
        else
        {
            ContentText.Text = App.GetResource("NoInternetAlert");
            AlertMessage.ShowAsync();
        }

    }

当我导航到这个页面之后,我有一个页面可以添加电话号码,导航到这个页面,关闭WIFI并向后导航,它将运行其他代码片段,并且没有显示互联网警报。从总体行为来看,似乎一旦我运行了ResetPageCache(),它就会删除缓存,而不会保存新的数据。我的ResetCacheFunction与博客链接没有什么不同,因为版本上有一些变化,所以在下面粘贴这个函数,但是功能是一样的:

代码语言:javascript
复制
private void ResetPageCache()
    {
        if (this.Frame == null) { return; }

        var cacheSize = this.Frame.CacheSize;
        this.Frame.CacheSize = 0;
        this.Frame.CacheSize = cacheSize;
    }
EN

回答 2

Stack Overflow用户

发布于 2015-08-18 08:02:25

从您的描述中,我会认为您忘记编写您的ProfilePage构造函数的折叠代码:

代码语言:javascript
复制
this.NavigationCacheMode = NavigationCacheMode.Required;

当您导航回实际页面时,它会缓存它。

票数 0
EN

Stack Overflow用户

发布于 2015-08-18 08:16:12

这不是缓存的问题,在我的getdata()中我是这样做的

代码语言:javascript
复制
if (!defaultViewModel.ContainsKey("ProfileData"))
            {
                defaultViewModel.Add("ProfileData", ProfileData.Result);
            }

经过大量调试后,我了解到缓存保存了defaultviewmodel,在进行新的调用之后,它仍然显示了以前的数据,所以我将其更改为

代码语言:javascript
复制
if (!defaultViewModel.ContainsKey("ProfileData"))
            {
                defaultViewModel.Add("ProfileData", ProfileData.Result);
            }
            else
            {
                defaultViewModel.Remove("ProfileData");
                defaultViewModel.Add("ProfileData", ProfileData.Result);
            }

它开始起作用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32065809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档