Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重构计划 #10

Closed
M-cheng-web opened this issue Mar 24, 2023 · 5 comments
Closed

重构计划 #10

M-cheng-web opened this issue Mar 24, 2023 · 5 comments

Comments

@M-cheng-web
Copy link
Owner

一期(sdk已有能力)

  • 简单支持 vue2 + vue3
  • 自动采集 + 暴露api给用户手动采集上报
  • 采集功能:【用户事件采集、页面跳转采集、请求采集、错误采集、资源加载采集】
  • 采集上传方法:只提供 sendBeacon(内部自动降级为image)

二期(预计2023.5 - 2023.6 完成)

  • 整体代码结构更改
  • 现有bug解决
  • 文档系统与sdk核心代码融合 (vuepress -> vitepress)
  • js -> ts
  • 更好的兼容 vue2、vue3(react以及小程序优先级靠后一些)
  • 支持暴露更多变量(例如最大缓存数、延迟上传时间、dom埋点名称等等)
  • 支持hook以及自定义hook
  • 支持加密传输(加密方式待确定)
  • 关于用户信息的重构 - 【1.分为未登录与已登录的场景,登录后进行绑定,机器与用户id进行多对多绑定(更多方案还在确定中) 2.支持动态修改用户信息】
  • 支持更多上传方式
  • 支持延迟加载sdk、异步发送敏感数据
  • 支持暴露更多sdk内部方法(例如使用者想要拿到此时的硬件数据)
  • 支持抽样发送,数据临时存储本地的形式减少服务端压力(这里同样也支持断网续联后发送)
  • 支持更多的事件以及行为监听
  • 支持对特定dom监控事件(例如监控页面button按钮的点击事件,这在大批量埋点场景中比较需要,另提供一些属性来标识特定按钮无需采集)
  • 支持区间打点,区间采集
  • 支持区域曝光度采集
  • 支持静默(通过配置来设定遇到大批量事件时sdk静默或者用范围时间记录上报,例如当大批量报错时)
  • 支持错误信息去重(并自动转为区间事件)
  • 为 vue3 提供一系列个性化hooks
  • sourcemap 错误跟踪
  • 最大上传长度限定
  • 提供 ignoreErrors,ignoreRequest 等
  • 白屏检测
  • 首次首屏数据更精确化
  • demo官网示例更简单化且提供在线编写能力
  • 探索:一些关键性的api能让使用者去替代更改、比如监听网络状态的内部实现支持使用者去重写
  • 探索:插件化(核心功能+其他插件的形式)
  • 探索:错误录屏
@M-cheng-web
Copy link
Owner Author

另:
感谢 xy-sea 提供的广泛思路

@baixjian
Copy link

期待~

@sansui-orz
Copy link

以前写业务代码的时候有印象sendBeacon是存在最大发送上线的,也就是总请求数达到一个上限之后将会返回失败。大佬可以验证一下,同时关注一下sendBeacon的返回值,false的时候还是要兜底一下的

@M-cheng-web
Copy link
Owner Author

非常感谢提醒,我这边看MDN上面对于sendBeacon 并没有说明最大发送上限的问题,不过从其他渠道发现可能会有此类问题,待主要功能开发完毕后我会针对此api在主流浏览器测一测实际情况,再次感谢~

@M-cheng-web
Copy link
Owner Author

#17

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants