如何永久存储用户数据

时间:2016-07-17 06:35:28

标签: javascript html local-storage

我目前正在做一个学校项目,我负责从头开始创建一个论坛。我打算创建一个“添加部分”按钮,单击该按钮会创建一个新的问题框。但是我不确定我应该怎么做。

到目前为止,我能够实现的目的是利用用户传递给我的数据,但是一旦用户刷新,我无法确保它保留在我的代码上。它是本地存储的限制吗?如果是,我可以使用任何替代方案吗?

我的代码的第1页

shiftKey

我的代码的第2页

onShiftEnter : Msg -> Attribute Msg
onShiftEnter msg =
  let
    tagger (code, shift) =
      if code == 13 && shift then msg else NoOp
  in
    on "keydown" 
       (Json.Decode.map tagger 
          ( Json.Decode.tuple2 (,)
              (Json.Decode.at ["keyCode"] Json.Decode.int)
              (Json.Decode.at ["shiftKey"] Json.Decode.bool)
          )
       )

2 个答案:

答案 0 :(得分:0)

这是

localStorage.setItem(key, value);
localStorage.getItem(key, value);

您的代码不是持久的,因为您只是为对象设置了一些属性。

答案 1 :(得分:0)

  

正如你所说,你正在做一个学校项目,所以我不是   指责你在项目中使用普通的javascript(没有javascript框架)。但是你可以使用jQuery来简化它。

LocalStorage用于在本地存储数据(永久为您)。 SessionStorage用于存储每个会话/选项卡的数据。

我认为您要将存储的数据更新到第1页。为此,请将脚本标记更改为

<script>
  function addNew(){
  var questionHead = document.createTextNode("Your Question");

  var queHeadElement = document.createElement("th");
  queHeadElement.appendChild(questionHead);
  document.getElementById("Questions").appendChild(queHeadElement);

  var datatwo = localStorage.datatwo;
  var newQuestionText = document.createTextNode(datatwo);
  var newQuestionTextElement = document.createElement("td");
  newQuestionTextElement.appendChild(newQuestionText);
  document.getElementById("myNewQuestion").appendChild(newQuestionTextElement);
}
  </script>

并使用此

更改您的表格
<table>
  <tr id="Questions">
    <th>What is my Name</th>
    <th>What is his name</th>

  </tr>

  <tr id="myNewQuestion">
    <td>Justin</td>
    <td>James</td>
  </tr>
</table>

使用此代码,localStorage的最新数据将显示在表格中,点击按钮。

以上代码可以正常使用。但我想在这里再说一件事。

  

<li><a href=""> < Prev </a></li>

如果你想使用少于或更多的符号,那么像&lt;上一个浏览器会将Prev视为html元素。并且浏览器会尝试将其结束标记设置为&lt; Prev /&gt;或&lt; Prev&gt;&lt; / Prev&gt;。虽然上面的代码在这里工作,但它不应该以这种方式编写。您应该始终使用&lt;来表示&lt;符号和&gt; for&gt;

<li><a href=""> &gt; Prev </a></li>

我希望这个答案可以帮助您完成项目。祝你的项目好运。