如何在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);
}
}
}
});
});
答案 0 :(得分:1)
使用“localStorage.setItem(key,val)”将数据存储到本地存储中,例如。
localStorage.setItem("key1_name", username.firstname)
答案 1 :(得分:0)
就像@Khan M所说,使用localStorage方法“.setItem(key,value)”来保存数据,使用“getItem(key)来检索特定键的值。
从我看到的,你每个keyUp生成几个不同的变量,所以你应该能够通过简单地创建一个“val”参数的对象来存储所有这些变量:
localStorage.setItem(key, {...});
要检索整个对象:localStorage.getItem(key);
检索对象内特定属性的值:localStorage.getItem(key.propertyName);
希望你觉得这个答案很有用,祝你好运!
答案 2 :(得分:0)
如评论中所述:
$('#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
}
...