2011-09-15 39 views
2

我正在使用jquery​​加载一些外部(但在同一域内)资源到页面中。jQuery .load() - 测量时间

由于此操作通过FireBug Network/Chrome Network console - 不可见如何测量加载时间?


编辑:

如果本地运行(不是localhost)萤火不会记录这个动作。

确保您使用WAMP/XAMPP(本地主机)或在线服务器进行测试。

回答

2

在时间使用不同:可能需要

var startDate = new Date(); 
var startMilliseconds = startDate.getTime(); 

$('mycontainerselector').load('myurl.html', function() { 
    console.log(new Date().getTime() - startMilliseconds); 
}); 

一些更正:)

+0

很聪明! ms中的结果是? – Iladarsda

+0

+1 - 好回答 –

+0

根据[W3C](http://www.w3schools.com/jsref/jsref_gettime.asp)yes _(getTime()返回自1970年1月1日以来的毫秒数)_,但是我没有没有检查它。 – Samich

2

.load()使得AJAX调用,这是在Firebug控制台可见,你确定你是在做的一切正确的方式?

+0

是的,一切正常。它没有被记录。我不知道为什么。 – Iladarsda

+0

也许是因为我在本地运行? – Iladarsda

+0

您是否在Firebug的“控制台”下拉列表中选中了“显示XMLhttprequests”的代码?否则它不会显示在控制台 –

1

你可以使用console.time()和console.timeEnd()

console.time('loading ajax'); 
$('#stuff').load('url.html', function() { 
    console.timeEnd('loading ajax'); 
}); 

它将打印:在控制台 “加载AJAX 1247ms”。

1

测量这个的另一种方式是:

var startDate = new Date(); 
var startMilliseconds = startDate.getTime(); 

$('#stuff').ajaxStop(function() { 
    console.log(new Date().getTime() - startMilliseconds); 
});