wae*_*218 16 html javascript jquery timer
所以假设我们有4个Div(3个隐藏,1个可见),用户可以通过javascript/jQuery在它们之间切换.
我想计算在每个Div上花费的时间,并将包含该时间的xhr发送到服务器以将其存储在数据库中.当用户切换div视图时,将发送此xhr.
我怎样才能做到这一点?任何提示将不胜感激.
谢谢,
Ate*_*ral 31
在任何时候,您都可以在变量中记录开始/单圈时间:
var start = new Date();
Run Code Online (Sandbox Code Playgroud)
如果要计算经过的时间,只需从新的Date实例中减去存储的日期:
var elapsed = new Date() - start;
Run Code Online (Sandbox Code Playgroud)
这将为您提供经过的时间(以毫秒为单位).做额外的数学(除法)来计算秒,分钟等.
干得好:
HTML:
<div id="divs">
<div>First</div>
<div class="selected">Second</div>
<div>Third</div>
<div>Fourth</div>
</div>
<p id="output"></p>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var divs = $('#divs > div'),
output = $('#output'),
tarr = [0, 0, 0, 0],
delay = 100;
divs.click(function() {
$(this).addClass('selected').siblings().removeClass('selected');
});
setInterval(function() {
var idx = divs.filter('.selected').index();
tarr[idx] = tarr[idx] + delay;
output.text('Times (in ms): ' + tarr);
}, delay);
Run Code Online (Sandbox Code Playgroud)
现场演示: http ://jsfiddle.net/7svZr/2/
我保持时间以毫秒为单位,因为整数更清晰,更安全(0.1 + 0.2 != 0.3).请注意,您可以通过设置delay变量来调整"精度"(间隔函数的延迟).
这是一个可重用的类,示例包含在代码中:
/*
Help track time lapse - tells you the time difference between each "check()" and since the "start()"
*/
var TimeCapture = function () {
var start = new Date().getTime();
var last = start;
var now = start;
this.start = function () {
start = new Date().getTime();
};
this.check = function (message) {
now = (new Date().getTime());
console.log(message, 'START:', now - start, 'LAST:', now - last);
last = now;
};
};
//Example:
var time = new TimeCapture();
//begin tracking time
time.start();
//...do stuff
time.check('say something here')//look at your console for output
//..do more stuff
time.check('say something else')//look at your console for output
//..do more stuff
time.check('say something else one more time')//look at your console for output
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21120 次 |
| 最近记录: |