【问题标题】:PWA offline-first, connection detection strategiesPWA 离线优先,连接检测策略
【发布时间】:2018-12-24 05:36:00
【问题描述】:

我想通过离线优先方法将我的 React 应用程序转变为 PWA,其中:

  1. 使用 CacheAPI 缓存静态资源
  2. 数据存储在 IndexedDB 中

我想介绍用户在离线模式下创建/更新/删除数据的具体情况。

我想到的场景是:

  1. 用户打开应用
  2. 从 IndexedDB 加载数据
  3. 用户失去连接
  4. 用户创建新实体
  5. 连接恢复
  6. 数据应该发送到服务器

我知道有一个后台同步 API,但它的浏览器支持似乎仍然非常有限,所以我想知道两件事:

  1. 检测连接开启/关闭的最佳机制是什么?
  2. 这种方法是否意味着客户端为实体生成 guid 并在本地跟踪同步的内容和未同步的内容?

如果有人能对通常的架构概述有所了解,那就太好了。

【问题讨论】:

    标签: service-worker progressive-web-apps


    【解决方案1】:
    //ON PAGELOAD  
      window.addEventListener('online', function (e) {
        this.IsOnline = true;
         this.employees = fetchFromLocalIndexDB();
         this.employees.forEach(function (item) {          
          if (item.FlagStatus == Status.Insert) {
             //CALL WEB API AND SEND TO REMOTE DATABASE
             myAPI.Post(url + item);
           });
          //GET ALL EMPLOYEES FROM THE REMOTE SQL DATABASE
            this.employees = myAPI.Get();
    
          //LOAD LOCAL DATABASE WITH EMPLOYEEES FROM THE REMOTE SQL DATABASE
            loadLocalDatabaseArray(this.employees);
          } 
        }, false);
    

    【讨论】:

    • 嗨,欢迎来到 Stack Overflow。请花点时间edit您的答案,以添加有关此代码如何工作以及为什么它可以最好地解决 OP 遇到的问题的更多信息。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 2018-04-20
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2022-01-14
    相关资源
    最近更新 更多