柜台盒,可见所有客户

时间:2013-02-22 20:25:44

标签: javascript ajax jquery counter

您好,我的网站需要一个按钮,从60秒到0开始倒计时,然后它会显示一些文字(让我们喝酒,欢呼),然后回到开始按钮。

所有用户必须能够看到此倒计时,以便当用户开始倒计时时,其他用户可以看到此信息。

它还应显示一个计数器,用户如何点击按钮,并加入“按钮”

我已经调查了这个,但我需要做Ajax / javascript pull。

由于我的编程技巧仍处于复制/粘贴/编辑级别,我不知道如何开始,我可以构建计时器,但不知道怎么做拉。

任何人都可以帮助我开始。

此致  勒

1 个答案:

答案 0 :(得分:1)

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

你提到了socket.io,在nodejs上构建。

使用nodejs这很困难,因为它是一个单线程运行时,因此您可以将变量值共享给不同的客户端。

你的nodejs必须听3个网址:

  1. 用于传递基础页面(可以不使用nodejs,只需要url到html)
  2. ajax url,用于将按钮从客户端传递到后端,返回当前计数
  3. ajax url传递当前秒数,返回当前计数和连接用户。
  4. 每次调用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);
    }
    

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