[英]Automatically reporting javascript errors to the developer
在大多數生產環境中,如果我們的Web應用程序出現錯誤,我們會設置一些通知給我們。 問題在於,這僅涵蓋服務器端的錯誤。
我對社區的問題是:你在做什么關於客戶端錯誤,特別是在javascript中?
那么其他服務質量問題呢,比如處理速度慢和客戶機可能導致的其他問題?
您可以使用window.onerror事件處理客戶端JavaScript錯誤
在處理程序內部向服務器端錯誤挖掘器發出Ajax請求並記錄錯誤。
http://www.javascriptkit.com/javatutors/error.shtml
所有瀏覽器都不支持Hovewer window.onerror,jQuery可以用自己的事件處理程序填補空白:window.onerror和jQuery(window)的組合.error應該足夠了
在客戶端,你可以做很多關於JavaScript錯誤的事情。 您可以捕獲window.onerror
並將其用於AJAX報告,但是:
(a)WebKit或Opera不支持它。 要捕獲所有錯誤,您必須在try { ... }
包裝每個直接執行,事件和超時入口點,這非常混亂,並且比onerror
處理程序提供的信息更少。
(b)您可能會被錯誤報告所淹沒,您無法做任何事情,由於缺乏信息而幾乎無法進行調試。 您可能能夠在只有您認識的客戶訪問的應用程序中使用它,但在公共訪問站點上,很多錯誤都是虛假的。 由以下因素引起的東西:
與托管腳本或AJAX的站點的連接失敗或被防火牆阻止;
意外的安全設置(瀏覽器可以選擇阻止許多接口);
破壞的瀏覽器插件,類似GreaseMonkey的腳本,過濾代理和虛假的“Internet Security”工具弄亂你的代碼;
不受支持的代理行為奇怪,如移動瀏覽器(尤其是令人震驚的IEMobile),如果有訪問權限,則自動瀏覽器機器人;
如果你有的話,第三方內容如廣告引起的許多錯誤。
同樣,對於一個有限使用的應用程序,您可以直接聯系任何遇到問題的用戶,它可能是有用的,但對於一般公眾使用的站點,它是一個非首發。
最好使用“漸進增強”來確保您的應用程序在JavaScript失敗時仍然有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.