c# - 将数据存储在缓存中并在有互联网连接时发布它

标签 c# asp.net caching

我在 ASP.NET 中有一个 Web 应用程序,它允许用户输入数据,并且数据将存储在远程 SQL 表中。我想实现一项功能,使用户甚至可以在离线时发布数据。

当用户离线时,他们可以输入数据并保存它们,并且需要将其存储在缓存中。但是,当系统连接到互联网时,我需要检索用户在缓存中保存的数据并将其保存到我的远程 SQL 表中。

谁能告诉我如何实现这个?

来自这篇文章`Build an ASP.Net web app with offline functionality 很明显,我们可以拥有离线功能,将数据存储在应用程序缓存中。不过,我还想将用户输入的值保存到我的数据库中。我想知道如何完成这一部分。

最佳答案

本文介绍了使用应用程序缓存、Web 存储和 ASP.NET MVC 的解决方案 - codemag

这篇文章很好地解释了事情,但为了完整的答案 - 基本上你需要一个应用程序 list 文件,例如

CACHE MANIFEST
# version 1

CACHE:
/home.htm
/images/logo.png
/styles/global.css
/script.js

FALLBACK:
/events.aspx /events.htm

NETWORK:
/customer/list

然后你在 html 中引用这个文件,例如

<html manifest="manifest.appcache">

接下来,您需要一种方法来判断是否存在连接以及连接状态何时发生变化。幸运的是,这很容易使用:

window.navigator.onLine //to detect the status

//Browser raises this event when online is detected
window.addEventListener("online", function (e) {
    //save to server
}, true);

//Browser raises this event when offline
window.addEventListener("offline", function (e) {
}, true);

离线保存时,您可以保存到本地存储,例如

 localStorage.setItem(JSON.stringify(data));

那么当您检测到连接再次在线时,它应该是一个简单的 Ajax 调用来保存数据。

关于c# - 将数据存储在缓存中并在有互联网连接时发布它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37740891/

相关文章:

python - 如果将 DataFrame 保存到磁盘,如果您在脚本中使用该 DataFrame,Spark 是否会加载该数据?

javascript - 如何将刻度转换为 momentjs 对象

c# - 在代码隐藏中向 Asp ListBox 列表项添加属性时出现问题

javascript - 为什么我更改代码时更改没有实时影响

c# - PayPal 支付标准从移动设备返回 GET 而不是 POST,因此无法验证记录支付

asp.net - IIS 8.0 ASP.NET 和错误 500.19

android - Activity返回后缓存为空

c# - 是否可以使用 iTextSharp 从 PDF 文件中获取结构元素?

c# - 在 C#.NET 中将 Excel 导入数据库

c# - 如何将当前的aspx页面保存为html