检查页面是否存在于缓存,Windows 8应用程序

本文关键字:缓存 Windows 应用程序 是否 存在 于缓存 检查 | 更新日期: 2023-09-27 18:33:30

有没有办法检查Windows 8应用程序中的页面/框架是否存在缓存?假设我有两个页面:主页和客户端(已启用导航缓存)。当我从主页(按按钮)导航到客户端时,客户端是从 OnNavigatedTo 方法中的数据库加载的。我通过"后退"按钮导航回"主页",然后再次导航到"客户端"。现在我看到客户端是从缓存加载的,这很好,但比从OnNavigatedTo方法加载。当我第一次打开页面时,我只想从数据库加载一次客户端。稍后只需从缓存加载客户端。

如何检查客户端是否以前加载或仅在第一页加载时加载它们?也许还有其他方法?

谢谢!

检查页面是否存在于缓存,Windows 8应用程序

这是一个解决方案...

Sinche 没有人想从 Metro 应用程序中的缓存加载,因此最好重置相应帧的缓存大小。对于您希望从缓存加载的页面。只需保持一个 if 循环。并检查History对象中的forwardStack

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    base.OnNavigatingFrom(e);
    if (e.NavigationMode == NavigationMode.Back)
    {
        ResetPageCache();
    }
}
private void ResetPageCache()
{
    var cacheSize = ((Frame) Parent).CacheSize;
    ((Frame) Parent).CacheSize = 0;
    ((Frame) Parent).CacheSize = cacheSize;
}

这是一个博客。我建议您通过第一个:)

博客

编辑---------------------

这里有两个链接。由于我从未遇到过从以前的缓存加载文件的情况,因此我可以分享一些发现:)

这是accesscache

访问缓存

这是winJS的

赢JS缓存

如果将要

:)的页面的缓存设置为 true,则访问缓存可能满足您的要求

好的,我解决了我的问题。重要的是启用导航缓存模式。在OnNavigatedTo方法中,我只检查我从数据库中保存的数据的列表是否包含任何元素。在第一页打开时,它是空的,所以我将数据从数据库加载到我的列表中。因此,启用导航缓存模式,变量中的数据将存储在缓存中,并在导航到此页面时加载。可能需要某些标志。