写点什么

JavaScript Error Recorder 使用户可以在浏览器中直接报告缺陷

  • 2014-08-29
  • 本文字数:1396 字

    阅读完需:约 5 分钟

Bogomil Shopov 和 Robert Nyman 发布了 Usersnap Console Recorder ,该套件用于 web 项目可视化标注式的交流(通过截屏)。

针对最终用户缺乏缺陷跟踪技术和经验这样的特点,Usersnap 将目标定为让用户能够以可视化的方式直接在浏览器中轻松地报告缺陷。为此,控制台对 JavaScript 错误进行了记录,以向修复缺陷的负责人提供所有必需的信息,包括 console.log 信息和元信息。

在《 JavaScript Error- and XHR Log Recording With Every Bug Report 》这篇文章中,Shopov 说:

每个错误或日志包括一个与网络时间协议(NTP)同步的时间戳,完整的信息包括 JavaScript 源文件和行号,你可能已经对 Firebug 的开发者控制台有所了解了,它格式与之是比较类似的。

每个由 console.log、console.info、console.warn 或者 console.error 发布的调试日志都已经得到恰当地格式化(包括递归对象或数组的格式化和浏览)。

Shopov 接着举了一个例子:

在页面滚动时,可以通过使用一个固定元素的 top 属性让其他的元素与之保持对齐。然而,由于标签重写了,元素#inexistent 已经不存在了。这就导致 offset() 方法返回 null,属性 top 也就不能再访问了:

复制代码
function clicky() {
console.info("Accessing a property of an undefined object");
console.log("calculating scroll top %d", $('#inexistent').offset().top);
};

Usersnap Console Recorder 的 JavaScript 日志会显示如下内容:

JavaScript 社区对这款控制台有各种不同的反应。在 Reddit 上对 Usersnap(缺陷报告的圣杯)的讨论中,用户 workaholicanonymous 对之大加赞赏,说道:

毫不夸张地说,我今天上午正在思考这些东西的开发呢。说真的,谢谢你们。

但在 Reddit 上的其他地方,在对 Web 开发者的强力王国。耶酥受难日的解读! 的讨论中,一些用户还不太清楚 Usersnap 的控制台提供的好处。用户 X1R0n 评论说

你用免费的 Google Analytics( http://davidwalsh.name/track-errors-google-analytics )也能实现同样的效果。

Usersnap 的共同创立者 Gregor Dorfbauer 回复了不同的意见,

那实际上没有什么可比性。Google Analytics 解决方案只是收集随机的 JavaScript 错误和 jQuery 的 XHR。

你看不到用户的完整会话,正如你要在用户的浏览器上打开开发者控制台,根本不要想“看过去的信息”。它和浏览器的完整截屏配合在一起使用可以很轻松地再现和解决问题。

还有些人担心隐私问题。用户 codepsycho

我本人是不会用它的,我的项目工作受保密协议的约束(所以实际上 Usersnap 保存所有的截屏并不是太理想的方式)

Shopov 向 InfoQ 回应了这个疑问,说:

虽然我们把截屏存放在了我们的服务器上,但它们会得到充分的保护。如果客户端有安全方面的需要,我们会通过以安全通道传送的方式去集成合作伙伴(比如 Trello、Kanbanize、Basecamp)甚至是客户的服务。我们可以保证只让客户能够看到这些截屏和数据,除了客户其他人谁都看不到。

客户也可以在任何时间要求删除所有的截屏:我们尊重我们的客户以及访问者的隐私。

Usersnap 与开源社区是一种开放的关系,并为源项目提供免费的许可证。Shopov 说,Usersnap 团队也非常有兴趣从InfoQ 的用户这里得到反馈意见,很希望听你们谈谈Usersnap 如何使你们的生活变得更加的便利,如何使你们的工作变得更加的高效,如何使你们可以快乐地享受工作。

查看英文原文: JavaScript Error Recorder Lets Users Report Bugs in Browser

2014-08-29 00:111612

评论

发布
暂无评论
发现更多内容

我是如何参与 Apache Calcite 社区并成为 Committer 的

LakeShen

大数据 开源 Apache Calcite apache 社区 Calcite

AI与人类联手,智能排序人类决策:RLHF标注工具打造协同标注新纪元,重塑AI训练体验

汀丶人工智能

大模型 智能标注 RLHF

都说了别用BeanUtils.copyProperties,这不翻车了吧

不在线第一只蜗牛

Java 数据库 后端 Java后端

怎样建立健康的绩效管理体系?聊聊专家看到的误区与疑问

思码逸研发效能

深圳企业要知道的:堡垒机就选行云管家!

行云管家

网络安全 堡垒机

苹果上架App被拒绝的原因

unsubscribe:Angular 项目中常见场景以及是否需要 unsubscribe

OpenTiny社区

前端 angular

软件测试学习笔记丨Docker网络模式与Docker-compose介绍

测试人

软件测试 测试开发

强大好用的shell:什么是shell?

小魏写代码

人工智能引领软件测试新的巨大变革

霍格沃兹测试开发学社

小程序框架(概念、工作原理、发展及应用)

天津汇柏科技有限公司

小程序开发 定制软件开发 软件开发定制

Stable Diffusion解析:探寻AI绘画背后的科技神秘

极限实验室

GAN model AI绘画 Diffusion Stable Diffusion

deepin Meetup成都站来了!一起聊聊deepin-IDE 2.0,还有礼品可以拿!

nn-30

flutter Linux 操作系统 linux开发 deepin

金三银四,聊一聊测试跳槽/面试的必备技能

霍格沃兹测试开发学社

CertiK CSO Dr. Kang Li 确认出席Hack .Summit() 香港区块链盛会

TechubNews

华为云携十大系统性创新亮相巴塞罗那 打造最适合AI的基础设施

华为云开发者联盟

云计算 AI 华为云 华为云开发者联盟

智能护航:人工智能引领软件测试新革命

测吧(北京)科技有限公司

测试

等保测评与合规性检查定义以及区别简单了解

行云管家

等级保护 等保测评 合规性检查

产品更新 | 如何利用思码逸DevInsight 度量代码评审效率、质量与瓶颈?

思码逸研发效能

火山引擎“数据飞轮”助力教育行业持续优化产品

极客天地

吴恩达AI系列第一课:教你如何利用AI创建一个披萨店客服

CodeBuddy

Cloud Cloud Studio 人工智能、

如何确保团队协作中,项目Node版本的一致性?

秃头小帅oi

node.js 团队协作 低代码

干货 | 如何通过度量研发效能,多角度洞察百人敏捷团队的价值交付?

思码逸研发效能

如何评价OpenAi发布的视频生成模型Sora?

算法的秘密

遇见您的私人法律顾问:智能法律大模型,智能解答您的法律困惑

汀丶人工智能

人工智能 智能问答 法律大模型

NFT支持的ICO开发:开创众筹的未来

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

深入解析 Java 面向对象编程与类属性应用

伤感汤姆布利柏

Java js java

JavaScript Error Recorder使用户可以在浏览器中直接报告缺陷_开源_James Chesters_InfoQ精选文章