收集用户的{j}错误

时间:2015-10-15 10:26:39

标签: javascript

我们的一些客户报告他们无法执行某些JavaScript操作。我们的错误数据收集在服务器上,当javascript中断时,我们无法收到通知,因为ajax调用无法在页面刷新之前运行。

有没有办法在客户端收集javascript错误,并在javascript再次正常运行后立即将它们发送到服务器。

示例:

  1. 用户转到页面a.php。
  2. a.php上有错误的javascript,它会破坏用户的javascript。
  3. 用户的客户端记录错误并将其存储在本地。
  4. 用户转到第b.php页
  5. b.php上没有错误的javascript,客户端检测到本地存储了javascript错误日志并继续将它们发送到服务器。
  6. 服务器写入日志。

2 个答案:

答案 0 :(得分:2)

无需刷新页面即可进行AJAX调用。您只需确保错误处理代码在其自己的脚本标记中,以便在其他代码中出现语法错误时不会中断。

以下是我们用于捕获脚本错误并将其发送到服务器的代码的一部分(AJAX代码采用单独的方法,但我相信您已经知道如何执行此操作):

window.onerror = function (message, url, line, column) {
    Ajax.logError(message, url, line, column);
    $('body').append($('<div>').addClass('ErrorPanel').text('An error occured in the browser.').delay(5000).animate({ height: 0 }, 2000, function() { $(this).remove(); }));
    return false;
};

答案 1 :(得分:-1)

也许你应该看看New Relic。 New Relic是一个用于软件分析的监控工具,它能够向您显示有关JavaScript错误的各种信息(以及更多):

http://newrelic.com/browser-monitoring