Cha*_*ime 3 .net c# progressive-web-apps blazor blazor-webassembly
我想构建一个可以离线运行的 Blazor WebAssembly 渐进式 Web 应用程序。
我今天早上开始使用 Blazor,我只是想掌握它的窍门。
首先,我想做一些类似keep.google.com 的事情。您可以在不同的设备上离线处理笔记,重新建立连接后,所有笔记都会在后台与服务器同步。
我的想法是在服务器上有简单的注释,id
带有title
和message
。这些注释可以从客户端显示和添加/修改。由于我希望应用程序能够离线工作,因此我希望同步过程如下:
我认为做到这一点的方法是在本地拥有数据库的副本。客户端对本地数据库进行修改,并定期/按下按钮后/重新建立连接时,我将本地数据库与服务器数据库同步。
我确信有一个官方且简单的解决方案可以做到这一点。我遵循Microsoft 的CarChecker示例,但他们使用 JavaScript 中的 IndexedDB 来做到这一点(官方教程视频中的 23 分钟 13 )。
您知道在本地存储数据并在后台与服务器同步的 .NET 解决方案/教程/服务吗?
小智 5
我编写了一个具有类似技术要求的 Blazor WebAssembly PWA。当然有不止一种方法可以实现这一目标,但我使用的步骤如下:
我在客户端使用 sqlite 将数据保留在本地。使该持久性并能够使用实体框架的最简单方法是使用 SqliteWasmHelper nuget 包。https://github.com/JeremyLikness/SqliteWasmHelper
在启动和/或在线时,我获取必要的数据并将其插入本地 sqlite 数据库。
用户可以进行更改,我将其保存到本地 sqlite 数据库并将其标记为准备同步。
我有一个带有计时器的后台服务,它以可配置的时间间隔执行,并获取标记为要同步的本地数据,并调用服务器上的 API 将数据保存到 SQL Server 数据库。当然,在尝试同步之前我会检查用户是否在线。
我使用Javascript来确定设备是否在线。如果您需要,我可以向您提供,但您应该能够通过谷歌搜索。
我有一个基于此方法的应用程序更新检查器,效果非常好:https://whuysentruit.medium.com/blazor-wasm-pwa-adding-a-new-update-available-notification-d9f65c4ad13
我希望这有帮助。如果您愿意,我很乐意提供更多详细信息。
归档时间: |
|
查看次数: |
1327 次 |
最近记录: |