Javascript 离线webapp。如何存储数据? 导言:

Javascript 离线webapp。如何存储数据? 导言:,javascript,local-storage,offlineapps,Javascript,Local Storage,Offlineapps,我想开发一个网络应用程序来管理体育比赛。它必须能够完全离线运行,在本地存储数据,并在有可用的internet连接时通过AJAX在线发布结果——这可能是后天的事情 问题: 如何使用Javascript存储数据 传统注释: 我不想使用任何服务器端技术 它必须像数据库一样安全。我读过关于cookies和html5存储的文章,但没有一篇听起来令人信服 如果您支持现代浏览器,您可以使用 持久本地存储是本地客户端应用程序相对于web应用程序具有优势的领域之一。对于本机应用程序,操作系统通常提供一个抽象层,

我想开发一个网络应用程序来管理体育比赛。它必须能够完全离线运行,在本地存储数据,并在有可用的internet连接时通过AJAX在线发布结果——这可能是后天的事情

问题: 如何使用Javascript存储数据

传统注释:
  • 我不想使用任何服务器端技术
  • 它必须像数据库一样安全。我读过关于cookies和html5存储的文章,但没有一篇听起来令人信服

如果您支持现代浏览器,您可以使用

持久本地存储是本地客户端应用程序相对于web应用程序具有优势的领域之一。对于本机应用程序,操作系统通常提供一个抽象层,用于存储和检索特定于应用程序的数据,如首选项或运行时状态。根据平台约定,这些值可以存储在注册表、INI文件、XML文件或其他地方。如果本机客户端应用程序需要密钥/值对以外的本地存储,则可以嵌入自己的数据库、发明自己的文件格式或任何数量的其他解决方案

示例

// Save data to a the current session's store
sessionStorage.setItem("username", "John");

// Access some stored data
alert( "username = " + sessionStorage.getItem("username"));

// Get the text field that we're going to track
var field = document.getElementById("field");

// See if we have an autosave value
// (this will only happen if the page is accidentally refreshed)
if ( sessionStorage.getItem("autosave")) {
   // Restore the contents of the text field
   field.value = sessionStorage.getItem("autosave");
}

// Check the contents of the text field every second
setInterval(function(){
   // And save the results into the session storage object
   sessionStorage.setItem("autosave", field.value);
}, 1000);


旧浏览器


使用。

您可以使用HTML5本地存储

对旧浏览器使用polyfill

取决于要存储的数据结构的复杂程度。它的可用性仍然很高,但有了它,你可以瞄准大多数现代桌面和移动浏览器

存储的数据并不比任何其他客户机存储模型更安全,因为它是用JavaScript读取的

API本身非常复杂,很难直接使用,因此您可能需要查看包装器API,例如哪些与CouchDB同步,或者如果您想要更简单的东西,则可以查看包装器API。

正是您想要的:

  • 您可以在上设置CouchDB实例来存储数据。CouchDB是一个充当Web服务器的数据库,所以它可以根据自己的数据为html页面提供服务——这种使用CouchDB(为页面提供服务)的方式通常被称为
  • 因此,您需要创建并编写一个HTML/Javascript/CouchDB风格的应用程序来服务您的页面。有很多方法可以促进这一点
  • 之后,您只需要将数据发送到CouchDB数据库,它就会出现在您的网页上。您将使用CouchDB的一个实现来管理客户端的内容,该实现在您的浏览器上运行并在本地保存您的数据,这样您就不会丢失数据,并在CouchDB服务器上自动更新您的本地数据,反之亦然。它是互联网上离线存储的前沿
  • 为了确保客户端不会向服务器发送坏数据,您可以设置身份验证(以便将Pocky与Coach连接时,您需要提供密码)或设置验证功能(以便服务器仅接受与您定义的某些参数匹配的数据存储请求)。这两种方法在我之前链接的指南()中有很好的解释,但您肯定会在CouchDB学习过程中遇到所有这些

很多东西,但是一个很酷的解决方案足以解决问题。而且,CouchDB的事情非常简单,我敢打赌你会在一两天内阅读和学习所有内容。

使用html5 LocalStorages如果发生在客户端,它是不安全的。我可以修改请求,更改脚本,并将任何我想要的内容发送到您的服务器。@Blender如何在客户端计算机上没有病毒、蠕虫等的情况下修改HTTPS连接上的请求?@Markasoftware:HTTPS对我是实际的客户端没有影响。好的,这很有意义。我只是想他说的可能是黑客的安全,而不是客户的安全。我想我会这么做。但是,如果我想创建一个离线网络,让所有用户都可以使用本地存储数据库,该怎么办?