我在jquery中有一个计时器,我想在刷新页面时保留该值。我正在使用php会话变量和一些ajax。但是当我刷新它时会保留N-1而不是N的值。
示例:
当我刷新没有任何反应时,我才20秒。然后,当我在18秒刷新时,输出的是20秒
以下是代码:
<?php
session_start();
if (isset($_GET['number'])) {
$_SESSION['timer']=$_GET['number'];
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script src="cookie.js"></script>
<script>
$(window).unload(function() {
var number = $('#test').text();
alert(number);
$.get('divb.php',{number:number},function(resultat){
return false;
});
});
$(document).ready(function(){
var numb = 30 ;
var numba = 100 ;
function comptage() {
setTimeout(comptage,1000);
$('#test').html(numb);
$("#progressbar").progressbar({ value: numba });
numb -- ;
numba = numba - (numba/numb) ;
if (numb < 0 )
{
numb = 0 ;
numba = 0 ;
}
};
comptage();
});
</script>
<style >
#affichage_point
{
position:relative;
background-color: #FFFFFF;
border: 1px solid #7375D8;
width:450px ;
height:5px ;
margin-left: 200px;
margin-top: 100px;
padding:30px;
}
#progressbar {
width : 400px ;
}
#progressbar > div {
background: #7375D8;
}
#bardivs {
width:400px;
position:absolute;
top:12px;
left: 50px;
}
#test {
position:absolute;
top:5px;
left:5px;
}
</style>
</head>
<body>
<div id = "affichage_point">
<div id="bardivs">
<div id="progressbar"></div>
<div id="test"></div>
</div>
</div>
<?php if (isset($_SESSION['timer'])) { ?>
<div id ="r6"><?php echo $_SESSION['timer'] ?> </div> <br/>
<?php } ?>
</body>
</html>
答案 0 :(得分:0)
只需使用此代码:
因此,我们只保留第一次访问时间并生成已用时间。无需将此变量存储在查询(GET)
中session_start();
if (!isset($_SESSION['start_time'])) {
$_SESSION['start_time'] = time();
}
$elapsedTime = time() - $_SESSION['start_time'];
但是你必须以某种方式重置start_time,猜测用户何时决定重新开始