zoukankan      html  css  js  c++  java
  • 使用rrweb实现web 页面录制可回溯

    rrweb适用场景:

    • 用户行为分析;
    • 远程debug;
    • 录制操作;
    • 实时协作;

    项目github:https://github.com/rrweb-io/rrweb  ,觉得有用,记得帮他加个星~

    官网:https://www.rrweb.io/

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>rrweb demo web site</title>
    <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js"></script>
    <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.js"></script>
    <link rel="stylesheet" crossorigin="anonymous"
    href="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/style.css" />
    <script crossorigin="anonymous" src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/index.js"></script>
    </head>
    
    <body>
    <h1 class="some-title">this is some title for test</h1>
    <input type="button" value="开始录制" onclick="record()" />
    <br />
    <input type="button" value="结束录制" onclick="replay()" />
    <div id="replaycontent">
    
    </div>
    <script>
    window.events = [];
    
    function record() {
    rrweb.record({
    emit(event) {
    // 将 event 存入 events 数组中
    events.push(event);
    console.log(event);
    },
    });
    }
    
    function replay() {
    new rrwebPlayer({
    target: document.getElementById("replaycontent"), // 可以自定义 DOM 元素
    data: {
    events,
    },
    });
    }
    // save 函数用于将 events 发送至后端存入,并重置 events 数组
    function save() {
    const body = JSON.stringify(window.events);
    console.log(body)
    events = [];
    fetch("http://localhost:8080/api", {
    method: "POST",
    headers: {
    "Content-Type": "application/json",
    },
    body,
    });
    }
    // 每 10 秒调用一次 save 方法,避免请求过多
    setInterval(save, 10 * 1000);
    </script>
    </body>
    
    </html>
  • 相关阅读:
    MySQL的FORMAT函数用法规则
    MySql 里的ifnull、nullif、isnull和if用法
    分布式中ID的常用解决方案
    Java多线程问题总结
    Mysql当前日期加减一个月
    Spring Boot浅谈(是什么/能干什么/优点和不足)
    Vue.js 入门教程
    Git服务器的搭建与简单使用教程
    阿里巴巴-德鲁伊druid连接池配置
    一些安卓实用代码
  • 原文地址:https://www.cnblogs.com/liangziaha/p/13755047.html
Copyright © 2011-2022 走看看