使用 rrweb 录制和回放用户交互操作

一直以来项目的日志功能只记录了用户的登录和接口请求操作日志,用来辅助我们定位和解决反馈的异常问题。这些日志大多数情况下并不会记录用户是如进行操作的,只记录发起请求时携带的参数信息。大多数情况下这些日志已经足够帮助我们发现和解决问题了。
但在一些非常独特的问题反馈中,我们没有办法了解到用户是如何触发这些异常请求的。还需要去主动联系用户询问当时的操作场步骤去复现,或者按照日志中的参数去猜测用户是如何操作的。

最近正在听 Web Worker 这档播客节目,有一期节目邀请到了 Aryu 大佬,就发现了 rrweb 这个项目。有兴趣的话可以从项目的主页中在线尝试录制和回放功能,预设了3个业务场景的录制体验Demo。

可以看到录制效果非常不错。能录制到鼠标轨迹、滚轮操作、各种元素的聚焦、下拉和光标位置等各种各样的操作记录。

  • 但因为是DOM级别的录制,所以浏览器原生提供的功能,并不会被录制到。比如说 <select> 元素提供的下拉操作和 <input type="file"> 提供的文件选择操作。
  • v1.0.0 开始以插件的形式增加了控制台录制的功能。

而且使用起来非常简单,只需要引入和执行 record 方法就可以启动录制了,然后按照自己的需求去存储即可。

import { record } from 'rrweb'

let events = [];
record({
  emit(event) {
    // 将用户操作的 event 存入 events 数组中
    events.push(event);
  },
});
阅读全文

记一次旁观他人的技术面试

最近没有什么面试经历,上一次面试已经是将近一年前了,所以没办法有效回忆到当时面试的状况。好在近期肉大(@meathill)有在做一个模拟面试的选题,就可以另辟蹊径写一篇旁观其他人面试的文章。

奥利奥同学 是一位能力非常强的前端开发者。最开始了解到他是他在群里分享了自己使用 ThreeJS 开发的一个可交互3D汽车展厅项目 的开发经历,非常吸引眼球并且完成了配套的讲解教程,可以说是非常用心和细致的一个开发者了。

所以这一次我们就来旁观他的一次模拟面试,🏃‍🏃‍🏃‍

阅读全文

思否有约|陟上晴明:人生没有白走的路,每一步都算数

分享会 只用CSS实现轮播图

早些时候有看到过一个 纯CSS轮播图 的文章,当时有研究过实现,大概是利用了 hash (锚标记) 和 scroll-snap 来实现的,但是具体实现已经回忆不起来了。

正好现在分享群组里边暂时没有主题了,就想着可以当成一个常驻的补位小环节,大家一起浏览 CodePen 之类的社区找一个大家都感兴趣的 Demo 来研究。
在分享前还是需要自己重新研究一遍的,不然在讲述的时候出错可太 “甜蜜的” 尴尬了。

阅读全文

程序员社群 成长&生活分享 2021/03/18

各位程序猿(媛)晚上好,今天轮到我来分享,先来自我介绍16年毕业计算机通信,后来专升本(计算机科学),这教育经历算是很差了,从事前端大概有三年(我也不是很确定…),中间有留校工作了1年多,后来辗转成都和重庆,19年回的浙江。

好自我介绍结束,开始正题:

💻 怎么入的前端坑?

之前一直学的计算机通信嘛,大概是13/14年有一届青少年科技创新大赛被老师拉进团队开始接触网站制作,那段时间接触的是PHPASP。快实习的时候一起比赛的学长找我去他们公司做,算是正式进入到前端领域(是一个外包公司)。
当时也没有认识到 外包自研 的区别,工作也简单就是做一个 页面仔 还原设计稿的,一开始一个月熟悉项目开发流程,后边就开始独立自己切,每天都一直努力还原设计稿,这段时间积累HTMLCSS的知识确实是最快的时候,我到现在都没有怎么回顾过了,基本看到设计稿大概就知道应该是怎么样的一个HTML结构,CSS应该怎么去写,有哪些部分可以复用,到实习结束大概已经切了大概有一百个网站(我们实习期很长有一年)

阅读全文