把这次使用localStorage的例子记录以下:
思路:
-
将每次计算的结果及相关参数存到一个数组中,然后先取出原有记录存到getallArry数组中,再把新记录加进这个数组中存起来 。之后再把getallArry数组存进localStorage。
-
因为每一组存的数据都是固定的数量(9个),所以这里我写了一个函数,将包含所有记录的数组allRecord分割成许多小数组(每一个小数组 = 一个 tr 包含的数据 );
-
把这些历史记录一一读取出来时,动态创建 tr ,然后将每一组数据按顺序赋值到对应的 td 。
-
这里我封装了2个函数,保存从table中读取的数据 saveToLocalStorage() ; 取出保存的历史数据 getLocalStorage();具体看下面的关键代码
在删除记录后执行 saveToLocalStorage();和getLocalStorage(); -
补充:
数组在 localStorage的存取:
localStorage.setItem(“allRecord”,JSON.stringify(数组名)); 的方式将数组转为字符串存进localStorage;再通过 JSON.parse(localStorage.getItem('allRecord")) 将字符串转为数组读取出来;需要读取历史记录时的两个条件:
默认情况(刷新历史记录界面)、 删除历史记录
关键代码:
html
<div class="record-wrap">
<table id="tb-header">
<thead>
<!--scope 将数据单元格与表头单元格联系起来-->
<th style="width: 2%; min-width: 22px;" scope="col"><input id="selectAll" class="select-all" type="checkbox"></th>
<th style="width: 11%; min-width: 54px;" scope="col">时间</th>
<th style="width: 10%; min-width: 58px;" scope="col">工作频率(f<sub>c</sub>)</th>
<th style="width: 10%; min-wi