SignalR,浏览器本地存储用例

本文关键字:存储 浏览器 SignalR | 更新日期: 2023-09-27 18:07:50

在我花时间制作原型之前,我想我应该征求一些其他人的意见。

我在网页上有一个列表,当用户超出范围(蜂窝,无线等)时,我需要用户能够对每个列表项的数据进行更改,并使更改在本地持续存在,直到连接重新建立。

所以我的想法是使用SignalR和浏览器的本地存储来实现这一点。

SignalR是发送/接收实时数据的连接。

如果连接状态已连接,我将照常进行,实时提交表单更改。

如果连接状态断开,则使用本地存储来存储修改的表单数据,直到与集线器重新连接,此时我将数据发布到服务器以进行保存。

有人能在这上面打洞吗?优点/缺点?有更好的方法吗?

我的堆栈是JavaScript, HTML5, c# API

提前感谢您的关心。

SignalR,浏览器本地存储用例

将SignalR用于ASP。我当然会推荐它。NET Web API。

确保您满足了所有要求,允许SignalR使用"WebSockets"进行连接,因为这是真正的双向连接,并且将提供检测断开连接的最佳方法。

如果SignalR无法使用web套接字,那么它会退回到诸如"服务器发送事件"之类的机制,它工作得很好,只是不像web套接字那么好。

请参阅http://www.asp.net/signalr/overview/getting-started/supported-platforms了解SignalR对web套接字的最低要求。

SignalR不应该用来提交数据和从服务器检索数据,你应该只在你希望服务器通知客户端(浏览器/移动/桌面)关于一些事件时使用它,在收到通知后你可以查询服务器以获得最新的数据。

在您的情况下,您可以选择Ado。Net Data Services .

如果你想用浏览器本地存储,那么你总是可以将数据保存到服务器,如果有一个连接错误,将其保存到本地存储,并使用一个单一的SignalR连接只是为了知道连接状态(在线/离线),一旦你得到连接恢复在线,你可以发布更新,你存储在本地存储到服务器

如果你不喜欢自己构建这个,也许PouchDB可以解决你的问题。你不需要任何SignalR或WebAPI的东西。

https://pouchdb.com/