• Flutter 的缓存策略


    Flutter 的缓存策略

    alt

    原文 https://medium.com/@romaingreaume/implementing-a-cache-strategy-in-your-flutter-app-5db3e316e7c9

    前言

    在移动应用程序中,缓存管理是一件非常重要的事情。

    在本文中,我将告诉您如何在我的公司 Beapp 中设置策略缓存。

    alt

    正文

    W 怎么了?

    如果你读了这篇文章,我想你知道缓存是什么,但是以防万一..。

    缓存基本上是将数据存储在设备的存储器中。

    W 为什么使用缓存?

    • 如果用户连接不好或者没有互联网
    • 限制 API 调用,特别是对于不需要经常刷新的数据
    • 存储敏感数据(我们稍后讨论)

    一张图片胜过千言万语:

    alt

    Cache Strategy Scheme

    缓存策略计划

    如您所见,缓存的主要用途是始终尝试向用户显示数据。

    关于敏感数据,出于以下原因,我将用户缓存与网络缓存分离:

    • 网络缓存比用户缓存更短暂。
    • 相反,用户缓存存储敏感数据,如访问令牌、刷新令牌,这些数据必须是安全的,用户不能访问。
    • 更具体地说,刷新令牌的有效期可能很长(长达几个月) ,而经典数据可能在一小时后刷新,这将导致不必要的 API 调用。

    因此,将这些策略分离开来是一种很好的做法,即使它们可以被合并。

    现在我们了解了什么是缓存,让我们深入研究代码吧!

    H 如何建立这些策略?

    文件树如下所示:

    -- lib

    ----- core

    ------- cache

    --------- storage

    --------- strategy
    • 1

    在子文件夹存储中,我们创建了一个文件 Storage.dart,其中包含一个抽象类 Storage

    这个类是一个“契约 contrac”,我们在其中声明操作数据的方法。

    abstract class Storage {
       
      Future<void> write(String key, String value);

      Future<String?> read(String key);

      Future<void> delete(String key);

      Future<int> count({ String? prefix});

      Future<void> clear({ String? prefix});
    }
    • 1
    • 2
    • 3
    • 4

    正如我所说,我们将通过我们的应用程序操纵它们,但为此,我们需要在设备中存储它们的方法。

    我们使用 Hive 包,它是一个基于键/值的存储解决方案。

    总而言之,Hive 在设备的存储中创建了一个文件夹,您可以在其中存储一个 hiveBox,其中包含 key: value 数据。

    我们可以很容易地通过它的名字进入这个盒子。

    现在我们可以从 Storage 抽象类中实现这些方法。

    class CacheStorage implements Storage {
       
      static const _hiveBoxName = "cache";

      CacheStorage()  {
        Hive.initFlutter() ;
      }

      @override
      Future<void> clear({ String? prefix}) async {
        final box = await Hive.openBox(_hiveBoxName);
        if (prefix == 
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    Flink(六)【DataFrame 转换算子(下)】
    Linux初探 - 概念上的理解和常见指令的使用
    bean的生命周期
    用Notepad++写java代码
    Tuxera Ntfs For Mac 2023的具体使用方法
    阿里云OSS和腾讯云COS对象存储介绍和简单使用
    设备自动化系统EAP在晶圆厂的关键作用
    讲座1:影像重建_脑疾病_大脑解码
    电脑下载视频号视频:微信视频号如何下载到电脑桌面上?
    努力打卡 每天学习 不浪费每一天 Day43
  • 原文地址:https://blog.csdn.net/weixin_42320543/article/details/127912799