一、uni.setStorageSync
将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
不大于1M时这样写就可以,下面附代码:
uni.setStorageSync('storage_key', 'hello'); //存入缓存
uni.getStorageSync('storage_key'); //从缓存取出
单个 key 允许存储的最大数据长度为 1MB,如果超出则存不进去,所以我们可以这样解决,思路,将数据拆分,然后分别存储,当用数据时再进行合并,下面附代码:
1.将数据分块存入缓存中
// 假设数据对象数组
var dataArray = [
{ name: '334', age: 99 },
{ name: '334', age: 99 },
// 更多数据对象...
// 总共 1050 条数据
];
// 定义分割块的大小
var blockSize = 500; // 每个块存储500条数据对象
// 计算分割后的块数
var numBlocks = Math.ceil(dataArray.length / blockSize);
// 存储分割后的数据块
for (var i = 0; i < numBlocks; i++) {
// 计算当前块的起始位置和结束位置
var start = i * blockSize;
var end = Math.min(start + blockSize, dataArray.length);
// 获取当前块的数据
var blockData = dataArray.slice(start, end);
// 存储当前块的数据,使用不同的 key 进行存储
uni.setStorageSync("block_" + i, blockData);
}
// 存储数据块的数量,以便在其他页面读取时使用
uni.setStorageSync("numBlocks", numBlocks);
注意:因为可能时再其他页面使用所以一定要存储被拆分数据块的数量
下面时再其他页面应用
// 读取数据时,根据需要合并数据块
var mergedDataArray = [];
var numBlocks = uni.getStorageSync("numBlocks");
for (var i = 0; i < numBlocks; i++) {
// 读取当前块的数据
var blockData = uni.getStorageSync("block_" + i);
// 合并数据块
mergedDataArray = mergedDataArray.concat(blockData);
}
// mergedDataArray 现在包含了完整的数据对象数组
注意如果数据要是可能大于10M,可以用全局变量
globalData
//App.js
globalData: {
title:'',
},
//B页面:需要存储的地方这样写
getApp().globalData.title = '你要存入的数据'
//如果要是需要读取的地方
console.log(getApp().globalData.title)//直接读取即可