当前位置: 首页 > news >正文

可以做问卷赚钱的网站有哪些网站用mysql

可以做问卷赚钱的网站,有哪些网站用mysql,网站建设与开发大作业,哪个云电脑好用又便宜最近俺在接触 Chrome 插件开发#xff0c;需要把一个数据存放到浏览器的存储中。这个数据结构有点复杂#xff0c;它包含一个 Map 和一个数组。我使用 chrome.storage.local API来存储这个数据#xff0c;然后在另一个地方获取数据。保存数据的代码并没有报错#xff0c;但… 最近俺在接触 Chrome 插件开发需要把一个数据存放到浏览器的存储中。这个数据结构有点复杂它包含一个 Map 和一个数组。我使用 chrome.storage.local API来存储这个数据然后在另一个地方获取数据。保存数据的代码并没有报错但是俺发现获取的时候获取结果的内容为空这是为什么呢 下面是我封装的保存数据和获取数据的方法 // 要存储的数据结构 const mindDataObj {keywordMap: new Map(),mindDataArr: [] };/*** 获取存储对象* param {string} key 存储对象的键* returns {PromiseObject} 返回一个包含存储对象的 Promise*/ export async function getObject(key) {return new Promise((resolve, reject) {chrome.storage.local.get([key], (result) {if (chrome.runtime.lastError) {return reject(chrome.runtime.lastError)}resolve(result[key] || {})})}) }/*** 保存存储对象* param {string} key 存储对象的键* param {Object} obj 要保存的对象* returns {Promisevoid} 返回一个 Promise表示操作完成*/ export async function saveObject(key, obj) {return new Promise((resolve, reject) {chrome.storage.local.set({ [key]: obj }, () {if (chrome.runtime.lastError) {return reject(chrome.runtime.lastError)}resolve()})}) }为什么会这样 经过查找资料发现chrome.storage.local 的存储机制只能存储和检索序列化的 JSON 对象虽然JSON可以很好地处理对象和数组但对于Map、Set等ES6中引入的复杂数据结构JSON是无法直接序列化和反序列化的。因此尽管你可能没有在保存数据时遇到错误但在尝试读取非JSON兼容类型的数据时这些数据将因无法被正确序列化而丢失。 解决方案 总之一句话chrome.storage.local 只能存储 JSON 兼容的数据类型如对象、数组、字符串、数字等Map 和 Set 需要转换为对象或数组才能正确存储。在这里我们通过 chrome.storage.local 存储时需要先进行序列化处理而在读取时需要进行反序列化处理。 步骤1: 序列化和反序列化Map对象 我们先增加两个方法做序列化的处理serializeMap 和 deserializeMap 方法用于将 Map 对象转换为数组从而可以存储在 chrome.storage.local 中并在读取时将其转换回 Map 对象。 /*** 序列化Map对象* param {Map} map 要序列化的Map对象* returns {Object} 序列化后的对象*/ function serializeMap(map) {return Array.from(map.entries()); }/*** 反序列化Map对象* param {Array} entries 序列化后的对象* returns {Map} 反序列化后的Map对象*/ function deserializeMap(entries) {return new Map(entries); }步骤2: 存储和读取数据 然后再增加操作数据的方法saveMindData 和 getMindData 方法用于保存和获取 mindDataObj 格式的数据包括序列化和反序列化步骤。 /*** 保存mindDataObj格式的数据* param {string} key 存储对象的键* param {Object} initMindDataObj 要保存的对象* returns {Promisevoid} 返回一个 Promise表示操作完成*/ export async function saveMindData(key, mindDataObj) {const serializedData {keywordMap: serializeMap(mindDataObj.keywordMap),mindDataArr: mindDataObj.mindDataArr};await saveObject(key, serializedData); }/*** 获取mindDataObj格式的数据* param {string} key 存储对象的键* returns {PromiseObject} 返回一个包含mindDataObj格式数据的 Promise*/ export async function getMindData(key) {const serializedData await getObject(key);const mindDataObj {keywordMap: deserializeMap(serializedData.keywordMap || []),mindDataArr: serializedData.mindDataArr || []};return mindDataObj; }
http://www.w-s-a.com/news/420371/

相关文章:

  • 宁波网站推广代运营长链接转化成短链接工具
  • 小企业如何建网站怎么自己制作app
  • 苏州品牌网站制作公司宁波建设工程有限公司
  • 合肥网站建设zgkr互联网创业好项目
  • 哪里学网站建设与管理云落wordpress
  • 网站建设意见做网站涉及到哪些
  • 网站导航栏原型图怎么做怎么样创建一个网站
  • 遨游建站金融网站建站
  • cms企业网站模板上海网站开发平台
  • 贵阳网站建设搜q479185700网站团队建设
  • 电商网站建设 教学总结蚌埠市住房建设部网站
  • 深圳罗湖企业网站发稿类别是什么
  • 做网站基本语言企业应用软件开发
  • 网站建设与运营 市场分析影视小程序搭建
  • vs 团队网站开发中铁建设门户网登录咋进不去了
  • 快速网站建设公司哪家好优秀的网站建设
  • 网站开发的自适应wordpress搜索词结果按文章标题
  • 微网站是用什么开发的wordpress中英文主题
  • 纯静态网站怎么做淄博seo开发
  • 江西新农村建设权威网站盐步网站制作
  • 网站ui设计例子怎么做打鱼网站
  • 在1688做公司网站wordpress category
  • 单页面 网站 模板网站代理公司
  • 手机网站底部电话代码网站后台点击添加图片没有反应
  • 龙岩建设局网站声明自学制作网站难不难
  • 济南网站优化小黑godaddy中文网站开发
  • 做微课常用的网站广州seo优化推广
  • 主机屋如何做网站电脑网页游戏大全
  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好