2013-12-16 18 views
17

chrome devtoolsのように、HTMLでJavascriptを使用してネットワーク要求のリストを取得するにはどうすればよいですか。例えばHTMLでネットワーク要求のリストを取得する方法

enter image description here

これは、google.comのためのデベロッパーツールです。私は、javascriptを使用して、リスト内のこれらのリクエストをすべて取得したい。これは可能ですか?もしそうなら、どのように?

+0

このコードはウェブサイトやChrome拡張機能の一部ですか? – Jasper

+0

これはウェブサイトの一部ですが、chromeのdevtoolsへの参照は、単にjavascriptでどのような情報を取得したいのかを説明するだけでした。 – Nayish

+0

DOMから画像やCSS画像、CSSなどの一部を取得できますシートURL、iframe、フラッシュなど、Ajaxのようなものはjsから到達できません。 – dandavis

答えて

12

一部のブラウザでは、not-yet-standard,Resource Timing APIのバージョンを実装しており、この情報の一部を収集することができます。

一部のブラウザでは、開発者向けツールのサポートの一環としてブラウザ拡張機能で利用できる情報がありますが、通常のWebページからはできないカスタム拡張機能をインストールする必要があります。

呼び出しコードを制御するか、呼び出しコードを知る非常に特殊な操作では、いくつかのことを行うことができます。たとえば、すべてのajax呼び出しがある特定の関数を経由することがわかっている場合、その関数をフックして、それが完了ハンドラであり、すべてのajax呼び出しを監視できます。

+0

なぜdownvote?この回答に誤りがありますか?それとももっと良い答えになるのでしょうか? – jfriend00

+0

これは正しいです。このレベルでの検査は、少なくともChromeの場合は拡張機能で行う必要があります。 http://developer.chrome.com/extensions/devtools_network.html – Matt

-1

ページが読み込まれたときにリクエストのURLを取得できますが、読み込み時間に関するあらゆる種類の統計情報を取得することは現実的ではありません。 script,linkまたはimgのようなリソース要求を行うクエリ要素。例えば

var urls = Array.prototype.map.call(
    document.querySelectorAll("link, img, script, iframe"), // Elements which request external resources 
    function(e) { // Loop over and return their href/src 
     return e.href || e.src; 
    } 
); 
+0

これらの要素によって行われたリダイレクトではこれは解決しません... – Nayish

+0

実際の統計情報が必要な場合はもちろん、リクエストを繰り返す必要がありますそれら。 – AdrianCooney

+0

私はelemnts自身によって行われたリダイレクトを意味していました...画像のソースが画像にリダイレクトされるページの場合のように – Nayish

8

あなたはあなたのウェブサイトにロードされている各リソースに関するすべての関連情報(ドメインルックアップ、キャッシュヒット、リダイレクトなど)を取得するためにResource Timing APIを使用することができます。

あなたはそれについて読むことができますhere。このAPIを使用してページロードウォールフォールを生成するbookmarkletもあります。

リソースタイミングAPIは、Chrome、Chromium、Chrome Mobile、IE10で利用できます。 Firefoxチームseems to be working on it

+3

私はあなたの答えが "それはできません"というよりも便利だと思います。ありがとう。 – JonnieJS

関連する問題