Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计数器框,对所有客户端可见_Javascript_Ajax_Jquery_Counter - Fatal编程技术网

Javascript 计数器框,对所有客户端可见

Javascript 计数器框,对所有客户端可见,javascript,ajax,jquery,counter,Javascript,Ajax,Jquery,Counter,你好,我需要一个按钮为我的网站,这将开始倒计时从60秒到0,然后它应该显示一些文字(让饮料,干杯),并返回到开始按钮 所有用户都必须能够看到此倒计时,以便当一个用户开始倒计时时,其他用户可以看到 它还应该显示一个计数器,显示有多少用户点击了按钮,并加入了“按钮” 我已经研究过了,但是我需要做Ajax/javascript拉取 由于我的编程技能仍处于复制/粘贴/编辑级别,我不知道如何开始,我可以构建计时器,但不知道如何进行拉取 有人能帮我开始吗 问候 Rene首先,您需要一个有状态的后端来存储用户

你好,我需要一个按钮为我的网站,这将开始倒计时从60秒到0,然后它应该显示一些文字(让饮料,干杯),并返回到开始按钮

所有用户都必须能够看到此倒计时,以便当一个用户开始倒计时时,其他用户可以看到

它还应该显示一个计数器,显示有多少用户点击了按钮,并加入了“按钮”

我已经研究过了,但是我需要做Ajax/javascript拉取

由于我的编程技能仍处于复制/粘贴/编辑级别,我不知道如何开始,我可以构建计时器,但不知道如何进行拉取

有人能帮我开始吗

问候
Rene

首先,您需要一个有状态的后端来存储用户计数。所以php+任何数据库

您提到了socket.io,它是基于nodejs构建的

对于nodejs,这并不困难,因为它是一个单线程运行时,所以您可以将变量值共享给不同的客户端

您的节点必须侦听3个URL:

  • 用于传递基础页面(无需nodejs即可完成,只需url到html)
  • 用于将按钮点击从客户端传递到后端的ajax url,返回当前计数
  • ajax url传递当前秒数,返回当前计数和已连接用户
  • 每次2。调用通道时,您需要检查倒计时是否一直在运行。如果不是:启动它,否则增加单击的计数器

    像这样:

    //nodejs code
    var currendSeconds=60;
    var connectedClients = 0;
    var threadid;
    
    function clientClickedButton(req, res){ // 2. url
         if(currendSeconds==60 || ) {
              threadid = setInterval(function(){
                    currendSeconds--;
                    if(currentSeconds == 0){
                        clearInterval(threadid);
                    }
              }, 1000);  //your counter
         }
         connectedClients++;
         res.send(currendSeconds);
    }
    

    您的客户端必须侦听按钮上的click事件,向2.url发送ajax请求并显示返回的秒数(从现在起,我们不需要请求秒数,只需设置客户端倒计时,而不请求当前秒数。)

    好的,我不确定是否可以运行nodejs,因为我在托管cpanel上,没有shell访问。所以我可能需要研究一个拉取解决方案,这会给我一些延迟…我使用Jquery和Ajax/php/Mysql组合来解决我的问题。谢谢你让我开始。问候勒内