如何衡量移动设备上的网页加载时间?

时间:2013-03-26 02:23:47

标签: android google-chrome

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

由于Chrome for Android上不支持扩展,因此有可能在代码中执行此操作吗?

2 个答案:

答案 0 :(得分:7)

有一款名为“Navigation Timing API”的内容可在Chrome for Android(以及桌面版Chrome,Internet Explorer和Firefox)上使用。

将您的Android设备连接到您的计算机,并按照this document中所述的说明启用“远程调试模式”。

在您的计算机上打开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的文章“Measuring Page Load Speed with Navigation Timing”上找到有关Navigation Timing API的更多详细信息。

答案 1 :(得分: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应用程序的话,我认为除了尝试用秒表或其他东西手动测量之外,目前还没有任何真正的解决方案。希望我错了。