我在ASP.NET中有一个Web应用程序,它允许用户输入数据,数据将存储在远程SQL表中。我想实现一种功能,即使在离线时也可以发布数据。
当用户离线时,他们可以输入数据并保存它们,并且需要将其存储在缓存中。但是,当系统连接到Internet时,我需要检索缓存中用户保存的数据并将其保存到远程SQL表中。
任何人都可以告诉我如何实现这个目标?
来自这篇文章`Build an ASP.Net web app with offline functionality 很明显,我们可以使用离线功能将数据存储在应用程序缓存中。但是,我还想将用户输入的值保存到我的数据库中。我想知道该怎么做。
答案 0 :(得分:3)
本文介绍使用Application Cache,Web Storage和ASP.NET MVC的解决方案 - codemag
这篇文章很好地解释了一些事情,但为了一个完整的答案 - 基本上你需要一个应用程序清单文件,例如。
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,例如
localStorage.setItem(JSON.stringify(data));
然后,当您检测到连接再次联机时,它应该是一个简单的Ajax调用来保存数据。