2013-09-30 3 views
14

にネットワークエラーをキャッチするためにグローバルなアプローチがあります。私は答えは、あなたがグローバルwindow.onerror経由でJavascriptのコンパイルと実行時エラーをキャッチすることができますいくつかの質問を発見したが、何の答えは、多くの場合、ブラウザのエラーコンソールで報告されている非Javascriptエラーの他のタイプに言及していません。私は主に、ネットワークエラー(無効なURI、SSLエラー、HTTPエラー、タイムアウト)とリソース解釈エラー(リソースの解釈を中断させる不一致のタイプ、読み込まれたリソースのエラー解析など)に興味があります。私はJavascriptを経由して自動化されたページ上のエラー検出の可能性を研究していますジャバスクリプト

私は必要ありません

(私は...クローム29でのみ確認)performance.getEntries方法を確認し、私はエラーになったネットワーク要求が含まれていないようですことを見つけることに困惑しています完全なクロスブラウザの互換性..それはいくつかのブラウザで動作し、他のものを壊さない限り、それはいいです。

+0

私は、通常の結果を与えるので、それらのほとんどは、ジャバスクリプトによって検出することができないだけで警告していると思います。ただし、各リクエストに独自のハンドラを追加して手動でチェックすることもできます。 – Bergi

答えて

2

window.onerrorハンドヘルドは、Chrome 13+、Firefox 6.0+、Internet Explorer 5.5+、Opera 11.60+、Safari 5.1+でうまくいきます。すでに多くの情報を提供しているreally good answer on StackOverflowがあります。

限り(画像など)他の要素が懸念しているように、jQueryの画像又は外部スクリプトのロードに失敗したときにユーザに警告するエラー・イベント・ハンドラを取り付ける.error()方法を提供します。あなたはjQueryのを使用できない場合は、別のオプションは、返却したいと思う何かがXMLHttpRequest経由ですべての画像/外部リソースをプリロードし、200 OKまたは304 Not Modified以外の要求(何のstatus(HTTP応答コード)を聞くことですエラー)。欠点は、ページが完全に読み込まれる前にイベントハンドラなどを添付する必要があるため、JavaScriptを無効にしている人は断片化した空白のページを探していることになります。

無効なURIとHTTPエラーは、サーバー側で最も処理されます。 Apacheのmod_rewrite(または同等)と組み合わせた整形式.htaccessファイルは、サーバへの不正な要求のためのクッションの多くを提供することができます。

+0

残念ながら、第2段落で述べたアプローチはグローバルではありません。サイト全体を書き直す必要があります。無効なURIは無効で、サーバーに送信されないため、無効なURIはサーバー側で処理できません。 HTTPエラーは、サーバーを所有している場合、監視することができますが、あなたはサードパーティのリソースをロードエラーをチェックしたい場合は... –

+1

@FabioBeltramini:あなたはサイト全体を書き換える必要はありません。ネイティブ関数([example](http://stackoverflow.com/questions/15768369/custom-xmlhttprequest-prototype-open))へのすべての呼び出しを傍受し、追加されるすべてのリソースを監視するスクリプトを前置する必要がありますDOMに渡します。コードに触れることなくエラーハンドラを動的に追加することができます。 – Bergi

+0

jQueryが必要ないとは思えません。

関連する問題