2015-10-15 52 views
1

我們的一些客戶報告說他們無法執行一些JavaScript操作。我們的錯誤數據收集在服務器上,當javascript中斷時,我們無法得到通知,因爲在刷新頁面之前無法運行ajax調用。從用戶收集javascript錯誤

有沒有一種方法可以在客戶端收集javascript錯誤,並在javascript再次正常運行時立即將它們發送到服務器。

實施例:

  1. 用戶進入頁面a.php只會。
  2. 在a.php上存在錯誤的JavaScript,它會中斷用戶的javascript。
  3. 用戶的客戶端記錄錯誤並將其存儲在本地。
  4. 用戶轉到頁面b.php。
  5. 在b.php上沒有錯誤的javascript,客戶端檢測到存在本地存儲的javascript錯誤日誌,並繼續將它們發送到服務器。
  6. 服務器寫入日誌。

回答

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

也許你應該看看New Relic。 New Relic的是軟件分析監控工具,它是能向您提供關於JavaScript錯誤(和更多)的各種信息:

http://newrelic.com/browser-monitoring