如何在没有后端的情况下保存用户输入
Posted
技术标签:
【中文标题】如何在没有后端的情况下保存用户输入【英文标题】:How to save user input without backend 【发布时间】:2014-05-20 04:59:01 【问题描述】:我只是在学习 javascript 和一般的 Web 开发,我想知道我想做的事情是否可行。 我想编写一个 JavaScript 测验,无需后端即可保存用户输入的答案。这可能吗?
如果不可能,我能做到这一点的最简单和最简单的方法是什么?
谢谢
PS:如果这不是问这个问题的正确地方,请引导我到我应该问这个的地方。
【问题讨论】:
【参考方案1】:是的,您可以使用cookies
或localstorage
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 的情况下提交用户输入