如何制作页面刷新时不刷新的Javascript倒计时

如何制作页面刷新时不刷新的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

我正在创建一个拍卖网站,但我无法制定一种方法来确定所有用户的倒数计时器。我尝试使用Ajax,但几乎没有任何帮助。我正在这里上传我的代码

<!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 | |秒,为什么不计算每次加载后的剩余时间。这样就不需要记住计时器。