首页 > 其他 > 详细

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

时间:2017-02-08 12:39:05      阅读:368      评论:0      收藏:0      [点我收藏+]

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

这篇文章讲一下,关于界面的问题,之前有一篇文章关于描述过界面缓存的文章,有三种方法:全局配置、路由配置、界面配置。详情可自行查看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属性区分,这个方法可以实现删除,但是不知道有什么副作用

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

原文:http://www.cnblogs.com/happen-/p/6377477.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!