我想以编程方式确定页面加载所需的时间,类似于某些扩展程序(例如Speed Tracer)的执行方式。例如,我想知道何时触发某些关键事件,例如网络连接,DOM加载事件和SSL网络时序。
由于Chrome for Android上不支持扩展,因此有可能在代码中执行此操作吗?
答案 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应用程序的话,我认为除了尝试用秒表或其他东西手动测量之外,目前还没有任何真正的解决方案。希望我错了。