scriptcat icon indicating copy to clipboard operation
scriptcat copied to clipboard

`CACHE_KEY_SCRIPT_INFO` (安装页面用的) scriptInfo (短期)储存优化

Open cyfung1031 opened this issue 3 weeks ago • 7 comments

scriptInfo是安裝頁面用的獨特設計

解决 storage.session 爆炸问题 (scriptInfo要储 code)

  1. 过期时间 储存时标明过期时间 下次新增时清一下旧的

  2. storage.session -> blob 不直接储大量数据在 storage.session. 改用同样依据浏览器周期的 blobURL storage.session 只储 blobURL 过期发生时, BlobURL 也一起清掉

3)由于使用 blobURL, 所以不用另外呼叫 uuidv4

  1. 整合 CACHE_KEY_IMPORT_FILE

cyfung1031 avatar Nov 26 '25 07:11 cyfung1031

用blob储存也很奇怪,读的时候还要fetch造成一次请求,压缩 session 中的数据,尽量从 local 中去读取呢?例如 session 只存脚本id,要用到数据的时候去local读取,有些数据也可以存储到local中去

CodFrm avatar Nov 26 '25 08:11 CodFrm

用blob储存也很奇怪,读的时候还要fetch造成一次请求,压缩 session 中的数据,尽量从 local 中去读取呢?例如 session 只存脚本id,要用到数据的时候去local读取,有些数据也可以存储到local中去

用blob储存也很奇怪,读的时候还要fetch造成一次请求

都是本机的。也不需要考虑效能问题 (就打开安装页时加载一下)

压缩 session 中的数据,尽量从 local 中去读取呢? 压缩慢,浪费CPU。也没什么压缩空间。 session + local 这样操作又复杂又双重 完全没好处

~不过 service worker 不能直接呼叫 blobURL. 可能会先把 code 放在 session 再等页面打开后换成 blobURL 做临时储存吧 感觉不用惊动 offscreen~

不对!现在的 fetch 就在页面进行! 要再仔细看看代码

cyfung1031 avatar Nov 26 '25 08:11 cyfung1031

scriptInfo 这个设计比较特殊啦 你不用想太多什么效能问题 能跑就行 不影响用户体感

cyfung1031 avatar Nov 26 '25 08:11 cyfung1031

我的压缩,不是数据压缩的意思,我的意思是 session 中只放 指向数据的id之类的内容,然后去 local 中读取

你这个blob,也差不多是类似的操作吧,session中放blobUrl,用的时候fetch去读取,精简session中的数据

CodFrm avatar Nov 26 '25 08:11 CodFrm

我的压缩,不是数据压缩的意思,我的意思是 session 中只放 指向数据的id之类的内容,然后去 local 中读取

你这个blob,也差不多是类似的操作吧,session中放blobUrl,用的时候fetch去读取,精简session中的数据

喔。这样 不用这样做 因为不需要长期储存 用 blobURL 就行 这个 CACHE_KEY_SCRIPT_INFO 是安装页根据 url 的 uuid 载入下载好的脚本资料 浏览器关了就没 反过来把不需要长期储存的东西放在 local 管理很麻烦

真的。完全不需要 我之后再提交 PR 吧。都放在 v1.3 BETA 里

cyfung1031 avatar Nov 26 '25 08:11 cyfung1031

但是有些数据就是长期储存的,只是之前一股脑的放进来了,比如scriptInfo,精简一下我觉得也可以解决部分这个问题,用blobURL+fetch觉得太脏了

另外你创建blobURL始终要去offscreen的,我觉得在offscreen中用内存来储存,然后使用message来获取,也可以,这样也不是长期的

CodFrm avatar Nov 26 '25 08:11 CodFrm

我觉得你理解有错了 可能我写得不够仔细吧 先不争论。 PR时再讲

cyfung1031 avatar Nov 26 '25 08:11 cyfung1031