我们有一些关于我们的结账问题的报告,其中客户得到js异常(我们假设),因此他们无法结账。
无论我们使用多少测试台,我们都无法重现问题,但这就是练习的重点。
我设置了一个简单的错误捕获功能,该功能基于以下内容:
window.onerror = function(message, url, line, chr) {
new Request({
url: "/errorTrap.php",
data: {
m: message,
u: url,
l: line,
c: chr
},
method: "get",
onComplete: function() {
// perhaps save the rendered html source via a second POST request?
alert("done");
}
}).send();
return true;
};
果然,在一个星期内,我收到了8封被困异常的电子邮件。
遗憾的是,签出页面非常动态。它包含一些内联javascript,其中很多是外部的。js文件和类,还有一些通过ajax响应进行js评估。页面的长度取决于购物篮中的物品、运输选项、通讯簿信息等。
这就是为什么在第253行看到异常“Object expected”的意义很小,因为它不能帮助我理解是哪个函数触发了异常,也不能提供脚本块/源代码的上下文。
我一直在考虑执行第二个XHR请求,该请求可以删除文档的innerHTML。主体,从而提供可能导致问题的相对行号和内容。
这是我在追踪方面唯一能做的改进吗?有什么解决办法吗?
下面是演示异常处理的JSFIDLE
http://www.jsfiddle.net/dimitar/8hqrY/