2

一部の拡張機能(Speed Tracerなど)と同様に、ページの読み込みにかかる時間をプログラムで決定したいと思います。たとえば、ネットワーク接続、DOMロードイベント、SSLネットワークタイミングなどの特定の重要なイベントがいつトリガーされるかを知りたいです。

Chrome for Androidでは拡張機能がサポートされていないため、コードで拡張機能を実行する方法はありますか?

4

2 に答える 2

7

Chrome for Android(およびデスクトップChrome、Internet Explorer、Firefox)で利用できる「 NavigationTimingAPI」と呼ばれるものがあります。

Androidデバイスをコンピューターに接続し、このドキュメントで説明されている手順に従って「リモートデバッグモード」を有効にします。

コンピューターでChromeを開き、localhost:9222にアクセスして、Android用ChromeのDevToolsにアクセスします。

Consoleで、次のように入力します。

> performance.timing

このようなものが見つかります(折りたたむと折りたたまれます)

connectEnd: 1364275296017
connectStart: 1364275296017
domComplete: 1364275296699
domContentLoadedEventEnd: 1364275296517
domContentLoadedEventStart: 1364275296458
domInteractive: 1364275296458
domLoading: 1364275296304
domainLookupEnd: 1364275296017
domainLookupStart: 1364275296017
fetchStart: 1364275296017
loadEventEnd: 1364275296705
loadEventStart: 1364275296700
navigationStart: 1364275295553
redirectEnd: 1364275296017
redirectStart: 1364275295553
requestStart: 1364275296025
responseEnd: 1364275296273
responseStart: 1364275296264
secureConnectionStart: 0
unloadEventEnd: 1364275296275
unloadEventStart: 1364275296275

ナビゲーションタイミングAPIの詳細については、HTML5Rocksの記事「ナビゲーションタイミングを使用したページ読み込み速度の測定」を参照してください。

于 2013-03-26T05:44:33.647 に答える
1

独自のWebViewにロードする場合は、次のようなものを使用できます。

mWebView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        long doneTime = System.getCurrentTimeInMillis();
        int timeToLoad = doneTime - startTime;
    }
});

long startTime = System.getCurrentTimeInMillis();
mWebView.loadUrl(yourUrl);

ChromeまたはFirefoxアプリで測定することを特に検討している場合、ストップウォッチなどを使用して手作業で測定する以外に、現時点で実際の解決策はないと思います。うまくいけば、私は間違っています。

于 2013-03-26T02:45:23.600 に答える