如何在没有后端的情况下保存用户输入

Posted

技术标签:

【中文标题】如何在没有后端的情况下保存用户输入【英文标题】:How to save user input without backend 【发布时间】:2014-05-20 04:59:01 【问题描述】:

我只是在学习 javascript 和一般的 Web 开发,我想知道我想做的事情是否可行。 我想编写一个 JavaScript 测验,无需后端即可保存用户输入的答案。这可能吗?

如果不可能,我能做到这一点的最简单和最简单的方法是什么?

谢谢

PS:如果这不是问这个问题的正确地方,请引导我到我应该问这个的地方。

【问题讨论】:

【参考方案1】:

是的,您可以使用cookieslocalstorage

http://developer.mozilla.org/en-US/docs/Web/API/document.cookie

http://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

【讨论】:

【参考方案2】:

如果您打算只为用户存储它们,您可以使用localstorage

有很多方法可以使用它,但这是一个非常简单的版本,应该会为您指明正确的方向。

正如@patick 下面提到的 - 如果您想存储更完整的数据,您需要对数据进行 JSON.stringify 处理,然后在您准备好使用数据时进行解析。

还请注意,所有本地存储都保存为字符串,因此您需要将其设为整数才能真正使用它。

你可能会这样做

// set inital score
var score = parseFloat(localStorage.getItem('score'));

// if they get the answer correct
score = score + 1;

// update the score
localstorage.setItem('score',score);

// go to next question

【讨论】:

需要注意的是 localStorage 将所有内容都存储为字符串,因此如果您打算保存数组或对象,您需要先对它们进行 JSON.stringify 然后 JSON.parse 它们以将它们返回到数组/对象 这是一个很好的观点——就像我说的,这是一个非常基本的例子。还取决于您希望如何存储数据 stringify 才能将数据存储为 JSON。 另外score = score + 1 应该是score = +score+1 否则它会将1连接到返回的字符串:) @PatrickEvans 哈哈——刚刚更新了我的答案。确保将字符串转换为整数 感谢您的回复,但如果我想自己查看数据而不将其存储在用户计算机上怎么办?我肯定需要一些服务器端代码来执行此操作吗?【参考方案3】:

尝试 html5 网络存储。使用 HTML5,网页可以在用户浏览器中本地存储数据。

这是MDN的快速教程

另一个教程:http://mrbool.com/creating-a-crud-form-with-html5-local-storage-and-json/26719

请务必注意,Internet Explorer 7 及更早版本不支持 Web Storage。

【讨论】:

我会推荐MDN 而不是w3schools,后者通常包含完全错误的信息。我发现 MDN 是可靠的。

以上是关于如何在没有后端的情况下保存用户输入的主要内容,如果未能解决你的问题,请参考以下文章

如何在不实现我自己的数据库后端的情况下保存站点的状态?

我们如何在没有用户输入的情况下创建和关闭 UIAlertController? (迅速)

如何使用 ajax Post 方法在没有 jQuery 的情况下提交用户输入

用vue element ui区分用户输入和数据变化

如何使用 JavaScript 在没有提交按钮的情况下提交“文件”输入?

在啥情况下用session?啥情况下用hidden?