2

我想以编程方式确定页面加载所需的时间,类似于某些扩展程序(例如 Speed Tracer)的加载方式。例如,我想知道何时触发某些关键事件,例如网络连接、DOM 加载事件和 SSL 网络计时。

因为 Chrome for Android 不支持扩展,有没有办法在代码中做到这一点?

4

2 回答 2

7

有一种叫做“ Navigation Timing API ”的东西可以在 Android 版 Chrome(以及桌面版 Chrome、Internet Explorer 和 Firefox)上使用。

按照本文档中的说明将您的 Android 设备连接到您的计算机并启用“远程调试模式” 。

在您的计算机上打开 Chrome 并访问 localhost:9222 以访问 Chrome for Android 的 DevTools。

在控制台中,键入以下内容。

> 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

您可以在 HTML5Rocks 的文章“使用 Navigation Timing 测量页面加载速度”中找到有关 Navigation Timing API 的更多详细信息。

于 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 回答