我有一个计时器功能,我需要在页面刷新页面时继续计时器,并在页面关闭时进行ajax调用(这是有效的)。我怎样才能做到这一点?
我有以下代码:
$(document).ready(function() {
function setTimer(timeSpent) {
$.post('./modules/ajax/task.php', {time:timeSpent}, function(data) {
$('#timer').timer({
seconds: data.timerTime
});
if(!isNaN(timeSpent)){
$('#timer').timer('remove');
}
}, 'json');
}
setTimer('start');
$(window).on('blur', function() {
setTimer($('#timer').data('seconds'));
}).on('focus', function() {
setTimer('resume');
}).unload(function() {
var timer = $('#timer'),
timeSpent = timer.data('seconds'),
userID = timer.data('userid'),
taskID = timer.data('taskid');
$.post('./modules/ajax/task.php', {
timeSpent: timeSpent,
userID: userID,
taskID: taskID,
save: 'save'
}, function(data) {})
});
});
答案 0 :(得分:0)
使用调用的onbeforeunload
事件在刷新页面之前,Tab已关闭或浏览器已关闭。
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any string';
}
// For Safari
return 'Any string';
};
您可以从浏览器控制台运行此脚本并检查结果。