Javascript 如何在localstorage中保存数据以供进一步使用?

Javascript 如何在localstorage中保存数据以供进一步使用?,javascript,trie,Javascript,Trie,如何将数据保存在localstorage中每次键入时,当我再次搜索数据时,都会显示来自localstorage的数据,这次不会从db发送任何数据请求 $(document).ready(function () { $('#input_id').keyup(function (e) { var name = $('#input_id').val(); var data = name.trim(); var msg = $('#result'); msg.empt

如何将数据保存在localstorage中每次键入时,当我再次搜索数据时,都会显示来自localstorage的数据,这次不会从db发送任何数据请求

$(document).ready(function () {
  $('#input_id').keyup(function (e) {
    var name = $('#input_id').val();
    var data = name.trim();
    var msg = $('#result');
    msg.empty();

    $.ajax({
      url: "search.php",
      method: "post",
      data: { input: data },
      dataType: "",
      success: function (name) {
      console.log(name);
      var getdata = JSON.parse(name);
      var z = getdata.length;
      for (var j = 0; j < z; j++) {
        if (getdata[j].surname) {
          var show_result = '<span id="result">' + getdata[j].firstname + " " + getdata[j].surname + '</span>';
          msg.append(show_result);
        } else {
          var show_result2 = '<span id="result">' + getdata[j].firstname + '</span>';
          msg.append(show_result2);
        }
      }
    }
  });
});
$(文档).ready(函数(){
$('#input_id').keyup(函数(e){
var name=$('#input_id').val();
var data=name.trim();
var msg=$(“#结果”);
msg.empty();
$.ajax({
url:“search.php”,
方法:“张贴”,
数据:{input:data},
数据类型:“”,
成功:功能(名称){
console.log(名称);
var getdata=JSON.parse(名称);
var z=getdata.length;
对于(var j=0;j
使用“localStorage.setItem(key,val)”将数据存储到本地存储器中,例如

localStorage.setItem("key1_name", username.firstname)

如@Khan M所说,使用localStorage方法“.setItem(key,value)”保存数据,使用“getItem(key)”检索特定键的值

从我看到的情况来看,您正在生成几个不同的变量,每个keyUp,因此您应该能够通过简单地创建“val”参数的对象来存储所有这些变量,如下所示:

localStorage.setItem(键,{…});

要检索整个对象:
localStorage.getItem(键);

要检索对象内特定属性的值:
localStorage.getItem(key.propertyName);


希望您觉得这个答案有用,祝您好运!

如评论中所述:

$('#input_id').keyup(function (e) {
  var name = $('#input_id').val();
  var data = name.trim();
  var msg = $('#result');
  msg.empty();
  var localdata = localStorage.getItem('my_key'); 

  if (!localdata || localdata !== data) {
    $.ajax({
      url: "search.php",
      method: "post",
      data: { input: data },
      dataType: "",
      success: function (name) {
        localStorage.setItem('my_key', name);
        console.log(name);
        var getdata = JSON.parse(name);
        var z = getdata.length;
        for (var j = 0; j < z; j++) {
          if (getdata[j].surname) {
            var show_result = '<span id="result">' + getdata[j].firstname + " " + getdata[j].surname + '</span>';
            msg.append(show_result);
          } else {
            var show_result2 = '<span id="result">' + getdata[j].firstname + '</span>';
            msg.append(show_result2);
          }
       }
    }
  } else {
     // do something with local data
  }
...
$('#input_id').keyup(函数(e){
var name=$('#input_id').val();
var data=name.trim();
var msg=$(“#结果”);
msg.empty();
var localdata=localStorage.getItem('my_key');
如果(!localdata | | localdata!==data){
$.ajax({
url:“search.php”,
方法:“张贴”,
数据:{input:data},
数据类型:“”,
成功:功能(名称){
setItem('my_key',name);
console.log(名称);
var getdata=JSON.parse(名称);
var z=getdata.length;
对于(var j=0;j
只需使用
localStorage.setItem(key,val)
保存值,并在您想要获取值时使用
localStorage.getItem(key)
。您能帮我检查一下,如何修改代码以检查这些数据是否已经在localStorage中?如果没有,那么数据将从数据库中检索。
if(localStorage.getItem()){//exist}else{//不存在,从数据库检索}
@Sriped在ajax调用之前,我应该在何处添加此条件?当您获取数据值时,感谢在ajax请求之前进行lotCheck检查,如果在ajax成功回调中不存在,请保存您的值。您好@AlejandroG,欢迎使用SO,请查看此选项以改进格式。@rai问题在于这是说,一旦您将一个值保存到本地存储中,您就再也不会请求您的数据库了。这应该是固定的,但我让您自己找到一种方法;)如果你找不到它,请再次来到这里。我找不到它。你能给我完整的解决方案吗?Thanksdata无法保存在localstorage中。eack keyup它向db发送了一个请求以获取结果。因为每个keyup都会更改输入,所以每个新的更新都不同于保存在localstorage中的数据。你应该尝试在form而不是keyUp。当我按下一个键时,所有相关数据都将保存在localstorage中。因此,如果我按下一个键,数据将从localstorge显示,它将不会请求数据库获取数据。如果我按下new key/letter,它将检查第一个localstorage,如果找不到数据,它将用于数据库搜索。非常感谢@条纹