【问题标题】:Store data in cache and post it when there is internet connectivit [closed]将数据存储在缓存中并在有互联网连接时发布[关闭]
【发布时间】:2016-06-10 06:00:19
【问题描述】:

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

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

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

来自这个帖子`Build an ASP.Net web app with offline functionality 很明显,我们可以拥有将数据存储在应用程序缓存中的离线功能。但是我也想将用户输入的值保存到我的数据库中。我想知道如何做那部分。

【问题讨论】:

  • 用户如何在 ASP.net 应用程序中离线输入数据?仅查看页面需要连接到网络服务器。
  • @JonP 嗨,当系统第一次连接到互联网时,它使用应用程序缓存和 Web 存储技术将所有数据从我的服务器存储到客户端系统。之后,即使用户处于离线状态,他也可以查看已存储的网站。

标签: c# asp.net caching


【解决方案1】:

本文介绍了一种使用应用程序缓存、Web 存储和 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.setItem(JSON.stringify(data));

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

【讨论】:

  • 似乎是一个很好的起点!!!
  • 嗨,这会将数据从我的服务器存储到客户端系统。但是我想将数据从客户端系统上传到我的 sql 服务器。我想知道那部分。
  • 嗨 Karthik,当您检测到浏览器再次在线时,请使用 ajax 将先前保存的 localStorage 数据发布到服务器。我已编辑答案以包含此步骤
  • 我们不能用 c# 代替 ajax 吗?
  • 我不知道。您实际保存到数据库的服务器端部分可以使用 c#,但您必须以某种方式将数据返回到服务器,我能想到的最好方法是进行 ajax 调用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
相关资源
最近更新 更多