我在 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/