HotJar如何生成他们的录音?

时间:2016-10-28 13:02:50

标签: javascript hotjar

跟踪鼠标移动/滚动/点击事件很简单,但他们如何保存屏幕并使其保持同步?

页面呈现得非常好(至少对于静态HTML页面,还没有在Angular或任何SPA上测试过),同步几乎是完美的。

要生成并上传23fps的屏幕录制(1920x1080),需要大约2Mbps的带宽。也许只有当有一些鼠标事件录制时,它仍然需要平均300-500Kbps?这似乎太过分了......

1 个答案:

答案 0 :(得分:3)

HTML内容和DOM更改通过websocket进行抽取并由Hotjar存储(减去敏感信息,例如来自用户的表单输入,除非您已将它们列入白名单),CSS不会被存储(它会得到)当你观看录音时由你装载。)

因为他们只记录用户活动和DOM更改,所以要记录的数据要少于捕获完整视频的数据。缺点是一些Javascript驱动的小部件在重放中无法正常运行。

来自Hotjar文档的相关信息:

  
      
  • 在录制时,使用内置于每个现代浏览器中的MutationObserver API捕获页面更改。   这使得它变得高效,因为变化本身已经发生   在页面和浏览器MutationObserver API允许我们记录   这个变化然后我们解析并通过websocket发送。
  •   
  • 以规则的短间隔,每100毫秒或每秒10次,记录光标位置和滚动位置。点击记录   当它们发生时,捕捉光标相对于光标的位置   单击元素。这些功能绝不会妨碍a   用户的体验,因为他们只捕获指针的位置   当点击发生或每100毫秒。这些事件被发送到Hotjar   服务器通过websocket中的框架,这是更有效的   而不是定期发送XHR请求。
  •   

来源:https://help.hotjar.com/hc/en-us/articles/115009335727-Will-Hotjar-Slow-Down-My-Site-