一、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)//直接读取即可
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐