📜  用于 table\ js 的 locak 存储 - Javascript (1)

📅  最后修改于: 2023-12-03 15:40:52.961000             🧑  作者: Mango

用于 table\ js 的 locak 存储 - Javascript

在前端页面中,我们经常会使用表格(table)来展示数据。如果数据需要被频繁修改,那么我们需要将数据存储在客户端,以便用户在关闭页面后再次访问时,可以重新加载数据而无须从服务器重新请求数据。这时候,我们可以使用本地存储(local storage)来实现数据的本地存储。

什么是本地存储?

本地存储是Web Storage API提供的一种在客户端存储数据的方法,它可以在浏览器关闭后仍然保存数据,并且保存的数据不会被浏览器清理掉。本地存储有两种类型:session storage和local storage。

session storage:将数据保存在会话(session)期间,浏览器关闭后会清除。 local storage:将数据永久保存在客户端,即使浏览器关闭也不会清除。

如何使用本地存储?

通过JavaScript的localStorage对象进行本地存储和获取数据。localStorage对象可以保存键值对,可以将对象和数组作为值进行存储。

//将数据存储到客户端
localStorage.setItem('key', 'value');
//从客户端获取数据
var value = localStorage.getItem('key');
//删除相应的数据
localStorage.removeItem('key');
//删除全部的数据
localStorage.clear();

需要注意的是,localStorage只能存储字符串类型的数据,因此如果要存储数组或者对象,需要先将它们转化为JSON字符串,再存储。

//将数组转化为JSON字符串,并存储
var arr = [1, 2, 3];
localStorage.setItem('arr', JSON.stringify(arr));
//从localStorage中获取数据,并将JSON字符串转化为对应的JavaScript对象
var arrFromLocalStorage = JSON.parse(localStorage.getItem('arr'));
使用local storage存储表格数据

通过上述方式,我们可以将数据以键值对的形式存储在localStorage中,因此,我们也可以将表格数据存储在localStorage中。下面是一个使用localStorage存储表格数据的示例代码:

// 将表格数据存储到客户端
function saveTableData() {
  var rows = document.getElementById('table').rows;
  var data = [];
  for (var i = 1; i < rows.length; i++) {
    var cells = rows[i].cells;
    var rowData = {};
    for (var j = 0; j < cells.length; j++) {
      rowData[rows[0].cells[j].innerText] = cells[j].innerText;
    }
    data.push(rowData);
  }
  localStorage.setItem('tableData', JSON.stringify(data));
}

// 将表格数据从客户端获取出来并还原到表格中
function restoreTableData() {
  var data = JSON.parse(localStorage.getItem('tableData'));
  if (data) {
    var table = document.getElementById('table');
    for (var i = 0; i < data.length; i++) {
      var row = table.insertRow();
      for (var key in data[i]) {
        if (data[i].hasOwnProperty(key)) {
          var cell = row.insertCell();
          cell.innerText = data[i][key];
        }
      }
    }
  }
}

在这段代码中,我们定义了两个函数:saveTableData和restoreTableData。saveTableData函数将表格数据存储到localStorage中。在这个函数中,我们首先获取表格的所有行,然后将每一行的数据存储为一个JavaScript对象。最后,将所有行的数据存储为一个数组,将整个数组以JSON字符串的形式存储到localStorage中。

restoreTableData函数从localStorage中获取保存的表格数据,并将其还原到表格中。在这个函数中,我们首先获取保存的数据,然后循环遍历数据中的每个元素,并将其还原为一行数据,插入到表格中。

总结

本文详细介绍了如何使用localStorage在客户端存储数据,并结合实例展示了如何使用localStorage存储表格数据。通过使用localStorage,我们可以将数据永久保存在客户端,以便用户在需要的时候重新加载数据。使用localStorage还可以有效降低服务器的负载,提高系统性能。