找回密码
 立即注册

QQ登录

只需一步,快速开始

renho 活字格认证

银牌会员

81

主题

1271

帖子

3396

积分

银牌会员

积分
3396

活字格高级认证

QQ
renho 活字格认证
银牌会员   /  发表于:2023-7-18 23:30  /   查看:2761  /  回复:5
本帖最后由 renho 于 2023-8-15 20:34 编辑

web发展到现在,其实有很多高级的接口可用,而且是桌面和移动端通用的接口

比如Service Workers、websql和indexedDB
但是今天的和这些都没关系


有两个概念就是本地存储localStorage和会话存储sessionStorage
区别就是sessionStorage里面的数据在页面会话结束时会被清除。
localStorage则不会。


正是因为上述两个接口存在可以让我们以一种通用的方式,在离线模式下存储数据(KV存储)。


好了具体的不多解释,简单点就是可以像变量一样存储数据。


为了使这些api更易用,我把他们做成了自定义函数。
大家可以像excel函数一样的进行使用。


大概就像下图一样
image.png165714720.png


如果是本地存储
=GET(key)  获取
=SET(key,value)  存储
=DEL(key)  删除
=CLEAR()    清空


同样的会话存储用法一致(仅仅是前面多了下划线)

=_GET(key)  获取
=_SET(key,value)  存储
=_DEL(key)  删除
=_CLEAR()    清空



有了这几个函数就可以为所欲为了,想怎么存储怎么存储
ps:公式在命令里面也是可以用的


好了最后附上的js(4K)
解压后添加到全局自定义JS里面
QFuction.min.zip (564 Bytes, 下载次数: 7, 售价: 30 金币)

5 个回复

倒序浏览
lovert
银牌会员   /  发表于:2023-7-19 08:26:46
推荐
你这个函数名称定义的不合理哦,在一些地方容易起冲突,set get del clear在某些库里都是保留字
回复 使用道具 举报
紫色幽魂
金牌服务用户   /  发表于:2023-7-18 23:35:30
沙发
顶一个
回复 使用道具 举报
pcsw18
初级会员   /  发表于:2023-7-19 08:01:50
板凳
占个位,支持楼主
回复 使用道具 举报
renho活字格认证
银牌会员   /  发表于:2023-7-20 23:31:42
5#
lovert 发表于 2023-7-19 08:26
你这个函数名称定义的不合理哦,在一些地方容易起冲突,set get del clear在某些库里都是保留字

感谢提醒

首先我得指出请不要混淆概念,我的初衷是让公式名容易记才这么定义的,因为自定义公式在活字格设计器里面是不带提示的
再者这个是公式名,公式不是函数,函数名是这样的
  1. //set
  2. function setlocalStorageFunction() {
  3.     this.name = 'set';this.maxArgs = 2;this.minArgs = 2;
  4. }
  5. setlocalStorageFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
  6. setlocalStorageFunction.prototype.evaluate = function (key,value) {
  7.     var a  = localStorage.setItem(key,value);
  8.     return a;
  9. }
  10. setlocalStorageFunction.prototype.isContextSensitive(function(){return true})
  11. GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("set", new setlocalStorageFunction());
复制代码
最后活字格的这几个公式名,官方并没有使用,我是可以使用的。


回复 使用道具 举报
放下活字格认证
高级会员   /  发表于:2023-8-15 11:29:55
6#
这个还是没有学会,能否出一个视频教程。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部