HuolalaTech / page-spy-web

Debug remotely and easily like chrome devtools.
https://www.pagespy.org
MIT License
4.27k stars 257 forks source link

离开页面时调用 window.$harbor.onOfflineLog('upload') 后,应该只上传了部分数据,rrweb 在回放中没有显示 #227

Open qiushaocloud opened 2 months ago

qiushaocloud commented 2 months ago

Describe the bug

离开页面时调用 window.$harbor.onOfflineLog('upload') 后,应该只上传了部分数据,rrweb 在回放中没有显示,希望能支持 navigator.sendBeacon 方式上传,如: window.$harbor.onOfflineLog('upload', {sendBeacon: true}) ,用于处理关闭页面/刷新等时自动上传回放数据

参考资料:https://cloud.tencent.com/developer/article/1423882

Steps to reproduce

No response

System Info

mac chrome

Logs

No response

Validations

wqcstrong commented 2 months ago

beacon 的诸多限制决定了不适用:https://www.w3.org/TR/beacon/#privacy-and-security

qiushaocloud commented 2 months ago

有些浏览器是能支持的,是否可以考虑做成,如果支持则使用,不支持则保持原有的,而且这通过参数控制,对有需要的人才会有用?

wqcstrong commented 2 months ago

不是兼容性问题,beacon 的兼容性挺好的,但不适合发大体积数据

qiushaocloud commented 2 months ago

大小问题可以采用分片上传方式解决

wqcstrong commented 2 months ago

sendBeacon 和分片上传这两个放在一起,就很难评 😄

我的建议是上传数据不建议放在关闭窗口的时候,欢迎说说你的实际场景,可能有其他解决方案

qiushaocloud commented 2 months ago

我这边的需求是不需要用户主动点击按钮就能上传回放日志,提供可以调试的链接给用户后,用户可能在任意时间点进行测试,因此实时调试不太现实,需要使用回放方式,而如果定时上传,会有大量重复的回放,我看了,每次上传都是全量上传,每次都会生成一个回放

因此我才想在关闭的时候能够进行上传

wqcstrong commented 2 months ago

我们正在推进 支持上传一段时间的日志数据,还请保持关注。

qiushaocloud commented 2 months ago

好的,如果支持后麻烦在此恢复一下