为了账号安全,请及时绑定邮箱和手机立即绑定

创建与服务器同步的 JavaScript 计时器

创建与服务器同步的 JavaScript 计时器

忽然笑 2024-01-18 14:51:34
1 - 我建议您使用规则flex。将其添加到您的 CSS 中:#message{  display: flex;  align-items: center;  justify-content: center;}2 - 从此标签中删除styles属性和样式p:<p style="margin-bottom:auto;text-align:center;">...</p>3 - 此外,您的span #message标签是display: inline动态的。您需要在javascript或中禁用此功能jquery。或者!important用于:display: flex_#message#message{  display: flex!important;  ...}如果您遵循我的回答,那么您的绿色标题的内容会看起来不错。.ShowHide {  overflow: hidden;  background-color: #2a4735;  color: white;}#left-showing {  overflow: hidden;}#right-showing {  float: right;  width: 30px;  text-align: center;}.ShowHide a {   color: white;   text-decoration: none;}.ShowHide a:hover {   text-decoration:underline;}#message{  display: flex;  align-items: center;  justify-content: center;}@media screen and (max-width: 425px){  #message{font-size:10px;}  .shippingimage{display:none;}}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div class="ShowHide" id="Bar">  <div id="right-showing">    <a href="#" onclick="Hide(Bar);">X</a>  </div>    <div id="left-showing">    <p>      <span id="message"></span></p>        <script type="text/javascript">    function nextMsg(index) {        if (messages.length === index) {            nextMsg(0);        } else {            $('#message').html(messages[index]).fadeIn(1000).delay(2000).fadeOut(1000, ()=> nextMsg(index+1));        }    };    var messages = [        '<img src="https://i.imgur.com/bcq9ydY.png" width="30px" class="shippingimage"><a href="https://www.fermento24.com/pages/spedizione" style="letter-spacing: -0.5px;vertical-align: super;">Consegna gratuita in giornata a Napoli, Caserta e relative province sopra i 25€</a>',        '<img src="https://i.imgur.com/pSAQiQp.png" width="35px" class="shippingimage"><a href="https://www.fermento24.com/pages/spedizione" style="vertical-align: super;"> Spedizione gratuita nel resto d’Italia sopra i 120€</a>',    ];    $('#message').hide();    nextMsg(0);    </script></div></div>
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

实际上,我认为你指的是方法setInterval。我相信你应该使用一个初始值为1的计数器。每次调用interval方法后,计数器应该增加1,然后你可以检查计数器是否超过了值60,然后才进行ajax调用并重新启动everythink 。


它应该看起来像这样


var counter = 1;

var timer = 0;

yourAjaxCall();

var t = setInterval(function(){

    //do client side stuff with time


    //after you done check if time needs to be fetched from server {60 seconds passed}

    counter++;

    if(counter >= 60){

        counter = 1;

        yourAjaxCall();

    }

}, 1000);


function yourAjaxCall(){

    $.ajax({

        url: 'yoururl',

        type: 'post',

        success: function(response){

            timer = response;

        }

    });

}


查看完整回答
反对 回复 2024-01-18
  • 1 回答
  • 0 关注
  • 17 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信