UWP页面缓存

    当UWP应用中需要频繁切换页面,而且页面信息不必实时更新时,使用页面缓存是非常高效的,不仅节省流量,还提高页面载入速度。不多说,上去就是干。

    经过百度,找到一篇文章关于page 的NavigationCacheMode  ,写得比较详细,但感觉有点乱,那我就整理一下吧。

    页面的构造函数中插入一下代码即可:

        NavigationCacheMode = NavigationCacheMode.Enabled;

    NavigationCacheMode的枚举值有三个:DisabledEnabled、Required。默认是Disabled,就是不缓存;Enabled和Required都可以缓存,区别是前者有缓存上限,后者没有。

    其实要缓存一个页面到这里就可以了,但实际使用时还要扩展一下。想象一个场景:一个页面加载消息列表,构造函数设置了缓存以及一个加载消息的函数,页面上还有个刷新按钮,按钮的后台代码是:

    right.Navigate(typeof(Page));
    首次加载这个页面时,页面会获取最新的消息列表,然后缓存。当我要刷新消息时,Frame会重新载入这个界面,那么问题来了:是否是加载缓存?答案是肯定的,但这是不符合功能要求的。这里就有必要了解一下缓存机制,构造函数设置了缓存,那么下次载入这个页面就不会再重新构造了(按我的理解),也就是不会调用构造函数了,构造函数中的加载消息的函数就不会调用,导致每次都载入缓存。但别忘了,还有OnNavigatedTo函数,这个函数是每次载入该页面时调用,与之对应的OnNavigatedFrom是每次离开该页面时调用。下面是重写某页面的OnNavigatedTo函数:
    protected override void OnNavigatedTo(NavigationEventArgs e)//重写
        {
            value = (HomePage)e.Parameter;//接收传来的值
            if (e.NavigationMode == NavigationMode.Back)//判断是不是按了返回键载入的
            {
                return;
            }
            else
            {
                List.Clear();//清空消息列表
                thepage = 1;//页面数重置为1
                getList();//加载消息
            }
        }
    注释都写得比较清楚了,就不多说了。


相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

XiaoMiTest

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值