有没有办法检查缓存中是否存在 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;
}
这是一个博客。我建议你先完成这个:)
编辑--------------------
这里有两个链接。因为我从来没有遇到过从以前的缓存加载文件的情况,所以我可以分享一些发现:)
这是accesscache
类
这里是 winJS
如果您将所需页面的缓存设置为 true,访问缓存可能会满足您的要求:)
关于c# - 检查页面是否存在于缓存中,Windows 8 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113316/