4

我要坦白承认,出于纯粹的无知,我一直对我的网站视而不见,直到最近我用Elmah(ASP.NET 的错误记录工具)和服务器上的控制器部署了一个站点以发送所有未捕获的 JavaScript 异常。至少可以说,这是一次令人大开眼界的经历。

我的一个网站每天有大约 150-200 名访问者。大约每天一次,我得到一个类似于这个的 Elmah JavaScript 堆栈跟踪:

CCS.Exceptions.JavaScriptException: Unspecified error.: at document path
    'http://www.*******.com/*****'. at anonymous('Unspecified error.',
    'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.0/jquery-ui.min.js', '5')
    at anonymous()

一般来说,我对 JavaScript 和 Web 开发比较陌生,所以我很感激一些建议:

  • 我应该如何着手解决此类问题的根本原因?对于调试生产中的问题(特别是 JavaScript)有什么建议吗?

  • 你会在重要性等级上把它排在哪里?我意识到如果不知道我盘子里的一切,这个问题几乎是不可能回答的。但我希望的是优先考虑这类事情的建议。我的头发着火了吗?或者,“嗯,这真的很常见,考虑到现在所有的浏览器和操作系统,这种事情肯定会发生。”

4

2 回答 2

1

这些异常中的每一个都是一个没有按设计工作的网页的可能性很大。为了理解该优先级,您需要了解以下内容:

  1. 有多少百分比的页面浏览量受到影响?
  2. 具体有哪些异常,会造成什么麻烦?
  3. 麻烦对您的业务有多重要。
  4. 识别和修复这些需要多长时间?与您的其他项目相比,它的商业重要性如何?

一般来说,如果没有进一步的研究,您将不会知道任何这些问题的答案,因此您要么必须决定所有未完全理解的异常都是一件坏事,至少应该被理解。

或者,您必须决定启动一个调查项目以获取与这些问题相关的更多信息,然后决定是否修复它。

或者,您必须确定您只是没有听到足够多的关于您的网站问题的报告以保证任何进一步的调查(我个人不喜欢这个选项,因为您猜测这并不重要)。

在不了解您的业务的详细信息的情况下,我的建议是预算并计划一个调查项目,以了解这些错误的来源并了解它们对网站可用性的影响。掌握一些数据做出决定比猜测要好得多。


至于调试,最终需要找出是哪一行代码触发了异常。您可能还想记录导致错误的浏览器配置(以防与浏览器版本相关的问题)。您可以首先了解堆栈跟踪报告中的每条信息的含义以及它告诉您的内容,然后了解是否可以更详细地跟踪 Elmah 系统中的异常。如果没有,您可以大致确定错误的来源,您可以实现自己的异常日志记录,该日志记录可能能够捕获其他信息。

您还可以浏览站点上的任何故障单报告,因为可能存在与这些异常相关的站点问题的一些内部或外部报告。

于 2013-01-17T01:58:11.723 回答
0

JavaScript 错误可能很难查明真相。你能做的最好的事情是确保你的 JavaScript 写得很干净,并将所有东西都放在命名空间中,以保持你的窗口对象尽可能干净,并避免变量提升,这是 JavaScript 库变得不规则时的常见问题。以下是我全面使用的首选命名空间模式 -

/* Namespace pattern */
var myAppNamespace = myAppNamespace || {};
(function(ns) {
    ns.doSomething = function() {
        // enter code here
    };
}(myAppNamespace));

/* Usage */
myAppNamespace.doSomething();
于 2013-01-17T02:03:04.433 回答