【WP开发】正确理解页面缓存_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 【WP开发】正确理解页面缓存

【WP开发】正确理解页面缓存

 2014/10/14 12:45:21  wangniuzen  程序员俱乐部  我要评论(0)
  • 摘要:注:本文内容面向RuntimeApp。在新建项目后,细心观察,你会发现在App类中有以下代码://TODO:将此值更改为适合您的应用程序的缓存大小rootFrame.CacheSize=1;这行代码放在了OnLaunched方法中,CacheSize是Frame类的一个公共属性。我们知道,Frame类负责完成页面之间的导航,它本身就是一个容器控件。CacheSize属性用于告诉Frame对象,要缓存的页面数量。近日,有人提问说,这个缓存页面数是不是导航记录的数量?明确地告诉你:非也
  • 标签:正确 开发 理解 缓存
注:本文内容面向Runtime App。 在新建项目后,细心观察,你会发现在App类中有以下代码:

                // TODO: 将此值更改为适合您的应用程序的缓存大小                rootFrame.CacheSize = 1;

这行代码放在了OnLaunched方法中,CacheSize是Frame类的一个公共属性。 我们知道,Frame类负责完成页面之间的导航,它本身就是一个容器控件。CacheSize属性用于告诉Frame对象,要缓存的页面数量。近日,有人提问说,这个缓存页面数是不是导航记录的数量? 明确地告诉你:非也。 Frame的导航记录在BackStack属性中,这个Cache并不是用来缓存页面的导航记录的,一定要注意啊,不要搞混了。 CacheSize属性是用于设置要保留页面实例的个数。当Frame导航到某个页面时,通常情况下,是要调用页面的构造函数来创建某页的新实例的。即,不论你是向前导航还是向后导航,只要导航到某页,某页都会重新实例化。因此,就可以理解为什么Frame类用于导航的Navigate方法要这样定义了:

public bool Navigate(System.Type sourcePageType)

这与Silverlight中的导航不同,SL中是传递URI的,而这里是传递页面类的Type,就因为得到某个页面类的Type,才会在导航是new一个实例出来。 感觉很抽象吗?没事,示例是无敌学习利器,还犹豫什么,动手。 1、启动VS,新建一个”空白应用程序(Windows Phone)“项目。据说MS会统一所有平台的命名,当然这是需要的,也是盖茨的梦想。不管叫什么,系统还是一样的,只是叫法不同罢了。 2、在App类中,找到OnLaunch方法,把CaheSize改为0。

rootFrame.CacheSize = 0;

3、把项目默认生成的MainPage.xaml删掉,因为它的存在,严重影响示例的演示,为什么? 待会儿再告诉你。
4、向项目中添加三个空白页,这个会了吧? 不会的话,就按Ctrl + Shift + A,试试。
5、三个页面的结构差不多,所以这里我只说第一个页面。XAML代码如下:   详细说明:http://wp.662p.com/thread-8277-1-1.html
发表评论
用户名: 匿名