写点什么

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:111457

评论

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

Nginx实现在局域网内真正的ip_hash负载均衡​

会飞的猪

关于Dapper实现读写分离的个人思考

yi念之间

大数据知识专栏 - MapReduce 的 Reduce端Join

小马哥

大数据 hadoop mapreduce 七日更

数字货币交易所APP开发|数字货币交易所软件系统开发

系统开发

TARS 染色日志|收集记录特定日志

TARS基金会

微服务 运维 日志 日志分析 TARS

亲历者说 | 完整记录一年多考拉海购的云原生之路

阿里巴巴云原生

阿里云 容器 微服务 云原生 dubbo

数字人民币带来更好支付体验 没有网络时也能使用

CECBC

数字人民币

中金数据集团与腾讯云合力拓展信息安全、区块链业务领域

CECBC

区块链产业

Seata RPC 模块的重构之路

阿里巴巴云原生

阿里云 开源 云原生 RPC seata

认识产品经理(第一章上)

让我思考一会儿

虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

刘悦的技术博客

Python 面试

区块链交易所软件开发|区块链交易所APP系统开发

系统开发

《认识产品经理》课后总结

DB

产品经理训练营

干货|更通用的P2P网络协议栈——Libp2p

QTech

IPFS Libp2p

重学JS | 玩转File API

梁龙先森

面试 大前端 编程语言 28天写作

2020出行之变(一):自动驾驶的“跃渊”时刻

脑极体

nodejs中使用worker_threads来创建新的线程

程序那些事

多线程 nodejs 并发控制 程序那些事 子线程

python+requests接口测试基础

测试人生路

软件测试

Spring Boot 中集成Redis

武哥聊编程

Java redis springboot SpringBoot 2 28天写作

Soul网关源码阅读(十)自定义简单插件编写

Java 源码阅读 网关

听了微信创始人张小龙的演讲,更加坚定Filecoin的光辉未来

时空云

分布式存储 IPFS Filecoin

35+的测试人都去哪儿了?所谓“青春饭”真的只是在贩卖焦虑吗?

程序员阿沐

编程 程序员 软件测试 教程 测试工程师

Redis 学习笔记 09:数据库

架构精进之路

redis 七日更 28天写作

HTML(五)——建立表格

程序员的时光

程序员 大前端 七日更 28天写作

阿里用5大核心技术+10大高级框架+200个经典案例全面解答了并发网络编程

996小迁

编程 架构 面试 笔记 亿级流量

DBA 的效率加速器——CloudQuery v1.3.2 上线!

BinTools图尔兹

数据库 运维 开发日志 dba 数据库管理工具

联发科推出天玑1200,新一年的头道“5G甜点”究竟滋味如何?

脑极体

云原生的理解

JiangX

容器 云原生 数字化转型 数字化 28天写作

1121212

熙羽1

区块链高水平专业人才稀缺成发展掣肘

CECBC

区块链人才

讨论:Service层的接口是不是多此一举?

xcbeyond

Java 接口管理 28天写作

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