2013-02-22 62 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