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

标签 c# caching windows-8 frame

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

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

谢谢!

最佳答案

这里有一个解决方案......

因为没有人愿意从 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;
}

这是一个博客。我建议你先完成这个:)

BLOG

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

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

这是accesscache

Access cache

这里是 winJS

winJS cache

如果您将所需页面的缓存设置为 true,访问缓存可能会满足您的要求:)

关于c# - 检查页面是否存在于缓存中,Windows 8 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113316/

相关文章:

c# - 值类型变量是否违反栈的LIFO性质

c# - 如何拆分一个长字符串,使其与给定的矩形匹配?

c# - 哪些语言支持没有样板代码的返回值缓存?

php - WindowsAzure : Blob cache experiments with phpazure

php - 缓存超过 1mb 的内存缓存替代品

css - Windows 现代应用程序是否支持 CSS 着色器?

C# asp.net MySQL 值返回为 Null

c# - 统一拦截 : How to pass parameter into ICallHandler implementation?

c# - WinRT 创建一个文件(如果该文件不存在)并知道该文件已创建

c# - HttpClient.GetAsync 在具有锁屏访问以及 TimeTrigger 或 MaintenanceTrigger 的后台任务中失败