ionic——性能优化【界面缓存清理】


前篇文章讲述过性能优化,主要是滚动条、一次性绑定、数组对象过滤。

这篇文章讲一下,关于界面的问题,之前有一篇文章关于描述过界面缓存的文章,有三种方法:全局配置、路由配置、界面配置。详情可自行查看http://www.cnblogs.com/happen-/p/5985434.html

在后期优化的过程中发现,通过url传参的时候,路由相同,但是参数不同,界面会产生缓存的,对程序的运行不利,平白的消耗手机内存,代码结构如下:

如上如,标红的两个其实是一样的路由,是同一个界面,我的这两个界面都是动态上拉加载数据的列表,可能数据会很多,缓存的个数越多,手机运行可能会越慢。

后来在网上找了很多方法,下边对我找的方法一一描述,并加上一些我自己的观点,可能不正确,请大家指正:

1.在跳转之前加清除缓存

代码:

var _goback = function() {
  // debugger;
  $ionicHistory.clearCache();
  $state.go('app.search.index');
};

效果如下:

代码看着好像生效了,但是他会把一些其他的缓存界面都删除掉,但是当前路由树的跟路由节点缓存是不会删除的,方法可行,但是删除所有的可能会造成其他方面的问题,这个暂时不知道怎么解决。

参考文档:http://www.tuicool.com/articles/7Bz6R3J

引申:有些app需要做清除内存的功能,之前没有思路,根据这个倒是可以实现,方法如下:

$ionicHistory.clearCache();
$ionicHistory.clearHistory();

2.清除指定界面的缓存【我本地实验没有效果】

$ionicHistory.clearCache([$state.current.name])

参考地址

http://stackoverflow.com/questions/25192172/clear-history-and-reload-page-on-login-logout-using-ionic-framework?answertab=active#tab-top

3.从$ionic histroy中删除

参考地址https://github.com/driftyco/ionic/issues/3750

4.手动删除DOM

手动查找需要删除的对象,可以根据<ion-view>的state属性区分,这个方法可以实现删除,但是不知道有什么副作用


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM