WEBAPP开发MUI框架下一个简单的JS模仿redis的数据存储插件

本文介绍了在WebAPP开发中,使用HBuder工具和mui框架,为解决用户数据持久化存储需求,作者用JavaScript实现了一个类似Redis的存储插件。该插件能确保数据不会被用户轻易删除,详细代码和使用案例在文中分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:HBuder工具 + mui框架

框架官网:http://www.dcloud.io/
框架API:http://www.html5plus.org/doc/h5p.html

公司开发APP一直使用的webApp的方式进行,这样既可以不用额外招聘安卓和ios开发外,还可以不用头疼各种分辨率兼容的问题。

之前有个APP有个需求是需要将某些用户数据存储到手机,并且不能被用户主动删除的那种,如果用缓存,肯定是不能满足要求的,后来我用js模拟了一个简单的类似于redis的数据存储插件。下面附上代码 [有使用案例]:

/**
 * 移动端的数据存储操作的工具类[移动端的一个小型的本地数据库]
 * 主要的方式是文件操作和自动解析
 * 
 * 数据库的数据存贮格式为     键值对    方式,类似PC端的 redis
 * 
 * 插件作者:孙帅
 * 开发时间:2017-05-04
 * 
 * 
 * new CwAppDB().InsertOrUpdate(table,key,value);
 * 数据的插入或更新,传入一个表名,key值,以及key对应的value值。存储成功不会有任何提示,存储失败会弹出"数据存储出错"
 * 【注,因为文件操作为异步,所以同一时间(1-2秒内)只能调用一次InsertOrUpdate方法,否则只会是最后一个方法有效】
 * 
 * 
 * new CwAppDB().SelectKey(table,key,OnSelectOver);
 * 数据的查询操作,传入一个表名,key值,以及接收查询结果的回调方法 OnSelectOver(key,value),
 * 回调方法有两个参数,第一个是查询的key值,第二个是接收查询到的结果,查询的时候,请在回调方法中处理查询结果
 * 
 * 
 * new CwAppDB().DeleteKey(table,key);
 * 数据的删除操作,传入一个表名,和一个key值,若在库中找到了该值,则删除,否则不进行任何操作
 * 
 * 
 * new CwAppDB().InsertOrUpdateArry(table,keys,values);
 * 数据库的批量添加操作,传入一个表名和一个key值数组 以及一个value值数组。注意,key值和对应的value值的下标一定要对应
 * 
 * 
 * new CwAppDB().DeleteKeyArry(table,keys);
 * 数据的批量删除操作,传入一个表名,和一个key值数组
 * 
 * 
 * new CwAppDB().SelectAll(table,OnSelectOver);
 * 数据的全表查找,传入一个表名,和一个回调方法,
 * 返回一个JSON数组格
 * 
 * 
 * new CwAppDB().SelectToValue(table,keyword,OnSelectOver);
 * 查找数据库value值中包含某个关键字的所有的数据,传入表名,查询关键字,回调方法,
 * 返回一个JSON数组格
 */
!(function(){
	window.CwAppDB = function(){
		mui.init({});
	}
	CwAppDB.prototype={
		InsertOrUpdate: function(table,key,value,OnSelectOver){//存储数据【key不存在的时候是添加,存在的时候是修改】。table:表名     key和value只能是字符串,不能有特殊符号 OnSelectOver:回调方法
			key=key.replace('>','').replace('<','').replace('\\','');
			value=value.replace('>','').replace('<','').replace('\\','');
            mui.plusReady(function() {
				plus.io.requestFileSystem( plus.io.PRIVATE_DOC, function( fs ) {
					fs.root.getFile('DB/'+table+'.cdb',{create:true}, function(fileEntry){
						fileEntry.file( function(file){//创建一个文件读写对象,文件没有的时候创建一个新的
							var fileReader = new plus.io.FileReader();
							fileReader.readAsText(file, 'utf-8');
							fileReader.onloadend = function(evt) {
//								alert(evt.target.result);//文件内容
								if(evt.target.result!=""){
									var keysValues=evt.target.result.split("\r\n");
									for(var i=0;i<keysVal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值