如何制作页面刷新时不刷新的Javascript倒计时
我正在创建一个拍卖网站,但我无法制定一种方法来确定所有用户的倒数计时器。我尝试使用Ajax,但几乎没有任何帮助。我正在这里上传我的代码如何制作页面刷新时不刷新的Javascript倒计时,javascript,php,ajax,Javascript,Php,Ajax,我正在创建一个拍卖网站,但我无法制定一种方法来确定所有用户的倒数计时器。我尝试使用Ajax,但几乎没有任何帮助。我正在这里上传我的代码 <!DOCTYPE html> <html> <head> <style> body { background-image:url('s.png'); background-size: 1370px 652px; background-repeat
<!DOCTYPE html>
<html>
<head>
<style>
body
{
background-image:url('s.png');
background-size: 1370px 652px;
background-repeat: no-repeat;
}
div.padding {
padding-top: 270px;
padding-bottom: 125px;
padding-right: 50px;
padding-left: 170px;
}
</style>
</head>
<body>
<div class="padding">
<?php
$con=mysqli_connect("127.0.0.1","root","","rocauction_db");
$x=$_POST["serial"];
$result = mysqli_query($con,"SELECT * FROM playerdb Where Serial=$x");
while($row = mysqli_fetch_array($result))
{
echo " <b> Name: </b>" . $row['name'] ;
echo "<br>";
echo " <b> Score: </b>" . $row['score'] ;
echo "<br>";
echo " <b> Link: </b>" . $row['link'] ;
echo "<br>";
echo " <b> Price: </b>" . $row['price'] ;
echo "<br>";
}
mysqli_close($con);
?>
Bid: <input type="text" style="width: 30px" disabled id="mybid" name="" value="" onkeydown="if (event.keyCode == 13) myFunction();secon(1);">
<p id="demo" >No Bids Available</p>
<p id="count" ></p>
<script>
var txt="";
function myFunction()
{
txt="";
var x = document.getElementById("mybid");
txt=x.value;
txt=parseInt(txt);
txt=txt+20;
document.getElementById("demo").innerHTML="<b>Current bid : </b>"+txt+"m";
}
var second=60;
var minutes;
function secon(check)
{
if(check==1){
second=60;
}
minutes=Math.floor(second/60);
var seconde = second - minutes * 60;
if(seconde<10)
document.getElementById('count').innerHTML = "<b>Time Remaining : </b>"+minutes +"<b>:</b>0" +seconde;
else
document.getElementById('count').innerHTML = "<b>Time Remaining : </b>"+minutes +"<b>:</b>" +seconde;
if (second == 0 && minutes == 0)
{
clearInterval(countdownTimer1);
document.getElementById("mybid").disabled = true;
if(txt=="")
document.getElementById('count').innerHTML = "<b>Unsold!!!</b>";
else
document.getElementById('count').innerHTML = "<b>Sold for : </b>"+txt+"m";
}
else
{
second--;
}
}
var countdownTimer1 = setInterval('secon()', 1000);
</script>
</div>
</body>
</html>
身体
{
背景图片:url('s.png');
背景尺寸:1370px 652px;
背景重复:无重复;
}
分区填充{
填充顶部:270px;
填充底部:125px;
右边填充:50px;
左侧填充:170px;
}
投标:
没有可用的投标
var txt=“”;
函数myFunction()
{
txt=“”;
var x=document.getElementById(“mybid”);
txt=x.0值;
txt=parseInt(txt);
txt=txt+20;
document.getElementById(“demo”).innerHTML=“当前出价:”+txt+“m”;
}
var秒=60;
var分钟;
功能secon(检查)
{
如果(检查==1){
秒=60;
}
分钟=数学楼层(第二层/60);
var seconde=秒-分钟*60;
如果(seconde您无法阻止用户刷新站点或其中的一个元素,但是您可以使用
window.onbeforeunload
?你说你要求它保持页面刷新,如果它不需要长时间保持,也许不需要服务器php,那么html5本地存储呢
$('document').ready(function(){
start = 1000;
timer = localStorage.timer ? localStorage.timer : start;
setInterval(function(){
console.log(timer--);
localStorage.setItem("timer",timer);
},1000);
});
这将检查一个值是否存储在本地存储器中,如果没有,它将从指定的开始开始启动计时器。您可以使用jquery倒计时,但在页面刷新时,您可以设置当前时间,这样我们就不会错过时间间隔
请参见此处以获取帮助:您需要设置会话中的剩余时间,以便获得准确的剩余时间。在这段时间内,您需要根据当前时间重新设置剩余时间
我的PHP代码:
date_default_timezone_set("Asia/Calcutta");
$oldtime = $_session['start_time'];
$newtime = time();
$difference = $newtime - $oldtime;
$time_remaining = $_session['time_remaining'] - $difference;
$_session['time_remaining'] =$time_remaining;
if ($_session['time_remaining'] > 0)
{
$_session['start_time'] =$newtime;
}
else
{
//'end_of_time';
}
JavaScript:
var seconds = <?php echo $_session['time_remaining']?>;
function secondPassed()
{
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10)
{
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0 || seconds<0)
{
clearInterval(countdownTimer);
}
else
{
seconds--;
}
}
var countdownTimer = setInterval('secondPassed()', 1000);
var秒=;
函数secondPassed()
{
var分钟=数学轮((秒-30)/60);
var剩余秒数=秒数%60;
如果(剩余秒数<10)
{
剩余秒数=“0”+剩余秒数;
}
document.getElementById('countdown')。innerHTML=minutes+“:”+remainingSeconds;
如果(秒)=0 | |秒,为什么不计算每次加载后的剩余时间。这样就不需要记住计时器。