簡體   English   中英

如何處理生產中偶爾發生的(看似)隨機JavaScript錯誤?

[英]What to do about infrequent (seemingly) random JavaScript errors in production?

我會干凈利落地承認,出於純粹的無知,我一直盲目地使用我的網站,直到最近我部署了一個帶有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)的任何建議?

  • 你會在重要程度上對此進行排名? 我意識到,如果不知道我盤子里的所有內容,那么幾乎不可能回答這個問 但我希望的是優先考慮這類東西的建議。 我的頭發着火了嗎? 或者,“嗯,這是非常常見的,如今所有的瀏覽器和操作系統都會發生這種事情。”

很有可能這些異常中的每一個都是一個不按設計工作的網頁。 為了理解該優先級,您需要了解以下內容:

  1. 有多少百分比的網頁瀏覽量受到影響?
  2. 具體的例外情況是什么,它們會造成什么問題?
  3. 這對您的企業來說有多么重要。
  4. 需要多長時間來識別和修復這些內容,以及與您的平板上的其他項目相比,其業務重要性如何?

一般而言,如果沒有進一步的研究,您將不會知道任何這些問題的答案,因此您要么必須確定所有未完全理解的異常都是壞事,至少應該被理解。

或者,您必須決定啟動一個調查項目以獲取與這些問題相關的更多信息,然后決定是否修復它們。

或者,您必須確定您沒有聽到有關您網站問題的足夠報告以保證進一步調查(我個人不喜歡這個選項,因為您猜測它並不重要)。

在不了解您的業務的詳細信息的情況下,我的建議是預算和計划調查項目,以了解這些錯誤的來源,並了解它們對網站可用性的影響。 使用一些數據做出決策比猜測更好。


至於調試,最終需要找出觸發異常的代碼行。 您還可能希望記錄生成錯誤的瀏覽器配置(如果是與瀏覽器版本相關的問題)。 您可以首先了解堆棧跟蹤報告中的每條信息的含義以及它告訴您的內容,然后了解您是否可以在Elmah系統中啟用更詳細的異常跟蹤。 如果沒有,您可以大致了解錯誤的來源,您可以實現自己的異常日志記錄,可以捕獲其他信息。

您還可以瀏覽網站上的任何故障單報告,因為可能存在一些內部或外部報告,指出可能與這些異常相關的網站問題。

JavaScript錯誤可能很難深究。 您可以做的最好的事情是確保您的JavaScript寫得干凈利落,並將所有內容放入命名空間,以使您的窗口對象盡可能干凈,並避免變量提升,這是JavaScript庫不守規矩時的常見問題。 下面是我全面使用的首選命名空間模式 -

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

/* Usage */
myAppNamespace.doSomething();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM