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

网站系统建设招标文件深圳勘察设计协会网站

网站系统建设招标文件,深圳勘察设计协会网站,wordpress 开放插件,针对人群不同 网站做细分一、概述 应用数据持久化#xff0c;是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象#xff0c;存储介质上的数据形态可能是文本、数据库、二进制文件等。 持久#xff08;Persistence#xff09;#xff0…一、概述 应用数据持久化是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象存储介质上的数据形态可能是文本、数据库、二进制文件等。  持久Persistence即把数据如内存中的对象保存到可永久保存的存储设备中如磁盘。持久化的主要应用是将内存中的数据存储在关系型的数据库中当然也可以存储在磁盘文件中、XML数据文件中等等。  HarmonyOS标准系统支持典型的存储数据形态包括用户首选项、键值型数据库、关系型数据库。 用户首选项Preferences通常用于保存应用的配置信息。数据通过文本的形式保存在设备中应用使用过程中会将文本中的数据全量加载到内存中所以访问速度快、效率高但不适合需要存储大量数据的场景。键值型数据库KV-Store一种非关系型数据库其数据以“键值”对的形式进行组织、索引和存储其中“键”作为唯一标识符。适合很少数据关系和业务关系的业务数据存储同时因其在分布式场景中降低了解决数据库版本兼容问题的复杂度和数据同步过程中冲突解决的复杂度而被广泛使用。相比于关系型数据库更容易做到跨设备跨版本兼容。关系型数据库RelationalStore一种关系型数据库以行和列的形式存储数据广泛用于应用中的关系型数据的处理包括一系列的增、删、改、查等接口开发者也可以运行自己定义的SQL语句来满足复杂业务场景的需要。 二 、用户首选项 用户首选项Perference为应用提供 key-value 键值型的数据处理能力支持应用持久化轻量级数据 说白了用户首选项就是用来保存和记录用户在操作应用的过程做做出的一些选择或设置。 可以存储一些数据但基本都是简单类型的数据主要作用都是存储一些用户设置数据比如是否是首次登陆就可以设置一个布尔类型的变量设值为true或false。 你可以粗暴的将它看作类似于redis的以键值对存储的本地非关系型数据库NoSql这样方便你使用与理解。 再或者你可以将它想象成一个用来存储数据的仓库/中转站可以跨组件的使用这些数据 约束限制  Key键为string类型要求非空且长度不超过80个字节。如果Value值为string类型可以为空不为空时长度不超过8192个字节。内存会随着存储数据量的增大而增大所以存储的数据量应该是轻量级的建议存储的数据不超过一万条否则会在内存方面产生较大的开销。 使用步骤 1、导入用户首选项模块 import preferences from ohos.data.preferences 2、获取Perferences实例读取指定文件 preference.getPreferences(this.context,MyAppPreferences).then(preferences {//获取成功}).catch(reason {//获取失败}) 3、 数据操作 //写入数据,如果已经存在则会覆盖,可以利用.has()判断是否存在 preferences.put(key,val).then(() {preferences.flush() //刷到磁盘中}).catch(reason {}) //处理异常//删除数据 preferences.delete(key).then(() {}).catch(reason {})//查询数据,defaultValue是默认值,没有值时就返回这个 preferences.get(key,defaultValue).then(value {}).catch(reason {}) 封装工具类 我们可以将这些功能封装成一个工具类 import preferences from ohos.data.preferencesclass PreferencesUtil {//map集合存储多个不同的preferencepreferencesMap: Mapstring, preferences.Preferences new Map;//加载一个preferenceloadPreference(context, name: string) {//返回值是一个Promise包裹起来的preference因此可以使用链式回调函数处理preferences.getPreferences(context, name).then(preference {this.preferencesMap.set(name, preference)console.log(testTag, 加载Preference [${name}]成功);}).catch(reason {console.log(testTag, 加载Preference [${name}]失败, JSON.stringify(reason));})}//获取指定preference并存入键值对数据async putPreferenceValue(name: string, key: string, value: preferences.ValueType) {if (!this.preferencesMap.has(name)) {console.log(testTag, Preference[${name}]尚未初始化);//结束异步return}try {let preference this.preferencesMap.get(name)//写入数据await preference.put(key, value)//刷新磁盘preference.flush()console.log(testTag, 保存Preferences[${name}:${key}${value}]成功)} catch (e) {console.log(testTag, 保存Preferences[${name}.${key}${value}]失败, JSON.stringify(e));}}//获取指定preference的指定数据async getPreferenceValue(name: string, key: string, defaultValue: preferences.ValueType) {if (!this.preferencesMap.has(name)) {console.log(testTag, Preference[${name}]尚未初始化);//结束异步return}try {let preference this.preferencesMap.get(name)//读数据let value await preference.get(key, defaultValue)console.log(testTag, 获取Preferences[${name}:${key}${value}]成功)return value} catch (e) {console.log(testTag, 获取Preferences[${name}.${key}]失败, JSON.stringify(e));}}//删除指定preference的指定数据async deletePreferenceValue(name: string, key: string, defaultValue: preferences.ValueType) {return isPreferencesHas(this.preferencesMap, name);try {let preference this.preferencesMap.get(name)//删除数据preference.delete(key)console.log(testTag, 删除Preferences[${name}.${key}]成功)} catch (err) {console.log(testTag, 删除Preferences[${name}.${key}]失败)}} }const isPreferencesHas function (preferenceMap: Mapstring, preferences.Preferences, name) {if (!this.preferencesMap.has(name)) {console.log(testTag, Preference[${name}]尚未初始化);//结束异步return} }const preferencesUtil new PreferencesUtil()export default preferencesUtil as PreferencesUtil 示例  在使用preferences之前肯定要先加载一个preference实例然后才能使用接下来的增删查功能。 既然要加载肯定不能是像之前那样让用户点个按钮触发创建而是最好程序已启动就自动隐式的创建所以使用生命周期的钩子函数onCreate()方法其实就相当于Vue的onMount()钩子函数 在EntryAbility文件中调用加载preference即可
http://www.pierceye.com/news/977257/

相关文章:

  • 网站品牌词优化怎么做全国网站建设公司
  • 沧州做网站哪家好wordpress站点进入时弹窗
  • 中国化工建设网站做淘宝网站如何提取中间的提成
  • 柳州网站制作推荐怀化网站seo
  • iis网站ip兰州网站排名分析
  • 珠海建网站多少钱网站月流量
  • 彩网站开发购物小程序源码
  • 优秀的网站建设开发案例合肥备案
  • 做网站怎么签订协议大数据下的精准营销
  • wordpress模版建站城乡建设部网站施工员证书查询
  • 手机网站前端网站开发成本包括
  • 有了主机和域名后如何做网站seo网站建站公司的主页
  • 株洲网站制作360广告联盟平台
  • 网站pv是什么意思vps开wordpress
  • 国外网站模版免费下载南通建设网站公司
  • 网站建设 广西学3d建模学费一般多少
  • 整站外包优化公司金山西安网站建设
  • 做3d动画网站广州公关公司排行榜
  • 网站开发确认表seo技术教程博客
  • 彩票网站建设一条龙淘客app
  • 泰安网站推广优化网站百度收录是什么意思
  • 免费虚拟主机控制面板长沙推广优化公司
  • 重庆企业网站建站公司建站系统
  • 规划设计网站推荐自己做采集电影网站
  • 免费学编程的网站有哪些做网站设计用什么软件
  • 网站成品超市学室内设计去哪好
  • 网站备案一个主体无锡建设银行网站
  • delphi xe10网站开发台州做网站多少钱
  • 怎样设计卖奖的网站做电影网站哪个服务器好
  • 找外包公司做网站的好处和坏处wordpress 访问量大