• 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属性区分,这个方法可以实现删除,但是不知道有什么副作用

  • 相关阅读:
    dotnetcore3.1 WPF 实现多语言
    dotnetcore3.1 WPF 中使用依赖注入
    [svc]打通mysql主从同步
    [svc]glusterfs的简单部署
    [svc]inotify+rsync解决nfs单点问题
    [svc]rsync简单部署
    [svc]linux文件权限
    [svc]ssh批量分发key/批量用户管理
    [svc]NFS存储企业场景及nfs最佳实战探究
    [svc]mount命令及解决因/etc/fstab错误导致系统不能启动故障
  • 原文地址:https://www.cnblogs.com/happen-/p/6377477.html
Copyright © 2020-2023  润新知