javascript 离线webapp.如何存储数据?

u4vypkhs  于 2023-01-11  发布在  Java
关注(0)|答案(4)|浏览(100)

简介:

应用程序必须能够完全离线运行,本地存储数据,并通过 AJAX 在线发布,只要有互联网连接可用-这可能是几天后。

问题:

如何使用Javascript存储数据?

附加注解:

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

lc8prwob1#

如果您支持现代浏览器,则可以使用HTML5 Local Storage

持久本地存储是本地客户端应用程序相对于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);

Browser Compatibility

旧浏览器

使用多边形填充。

kx7yvsdv

kx7yvsdv2#

取决于你想要存储的数据结构有多复杂,你可以考虑indexedDB,它仍然是pretty bleeding edge,但polyfil可以针对大多数现代桌面和移动的浏览器。
存储的数据并不比任何其他客户机存储模型更安全,因为它是要用JavaScript读取的。
API本身非常复杂,很难直接使用,所以您可能需要看看与CouchDB同步的 Package 器API,如PouchDB,或者如果您想要简单得多的东西,可以使用db.js

x4shl7ld

x4shl7ld3#

您可以使用HTML5本地存储
对旧版浏览器使用聚合填充https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills#web-storage-localstorage-and-sessionstorage

f3temu5u

f3temu5u4#

完全符合您的需求:

  • 您可以在IrisCouch上设置一个CouchDB示例来存储您的数据。CouchDB是一个充当Web服务器的数据库,因此它可以基于自己的数据提供HTML页面--这种CouchDB的使用(提供页面)通常称为CouchApp
  • 因此,您可以使用learn about CouchDB并编写一个HTML/Javascript/CouchDB风格的应用程序来为您的页面提供服务,tools可以帮助您实现这一点。
  • 之后,你只需要将数据发送到你的CouchDB数据库,它就会出现在你的网页上。你将用PouchDB管理客户端的东西,这是一个在你的浏览器上运行的CouchDB实现,它将你的数据保存在本地,所以你永远不会丢失它,并自动更新你在CouchDB服务器上的本地数据,反之亦然。它是互联网上离线存储的前沿。
  • 要确保客户端不会向服务器发送错误数据,可以设置 authentication(因此,要将Pouch与治疗床连接,您需要提供密码)或者您可以设置 * 验证功能 *(因此服务器将只接受与您定义的某些参数相匹配的数据存储请求)这两种方法在我之前链接的指南中有很好的解释(here),但在CouchDB学习过程中肯定会遇到所有这些问题。

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

相关问题