2013-02-22 119 views
0

你好,我需要一个按钮,我的网站,将开始倒计时从60秒到0,然后它应该显示一些文本(让喝,欢呼),并返回到开始按钮。计数器框,可见所有客户

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

还应该显示一个计数器,的的howmany用户已经点击该按钮,并在“按钮”

加盟我已经看过这个,但我需要做的Ajax/JavaScript的拉动。由于我的编程技巧仍然处于复制/粘贴/编辑级别,所以我不知道如何开始,我可以构建计时器,但不知道如何执行此操作。

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

问候 勒

回答

1

那么首先,你需要一个有状态的后端,以存储USERCOUNT位。所以php +任何分贝。

你提到过socket.io,建立在nodejs上。

使用nodejs这一点很难,因为它的单线程运行时,所以你可以将变量值共享到不同的客户端。

您的NodeJS都要听3个网址:

  1. 用于传递筑底网页(可无的NodeJS做,只是URL到HTML)
  2. AJAX网址传递点击一个按钮,从客户端后端,返回当前计数
  3. 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); 
} 

你的客户方必须听点击活动按钮,发送一个AJAX REQ到2.url和显示返回秒(从现在开始,我们不需要请求秒,只需设置一个倒数客户端,而不需要当前的秒数。)

+0

好吧,不知道我可以运行nodejs,因为我是托管的cpanel,没有shell访问。 – 2013-02-22 21:05:28

+0

所以,我可能需要看看拉取解决方案,而这会给我一些延迟,虽然... – 2013-02-22 21:06:24

+0

我结束了使用JQuery结合Ajax/php/Mysql组合来解决我的问题。感谢让我开始。 Regards René – 2013-03-27 23:29:03

相关问题