2012-05-26 44 views
0

在這裏,我有和3個數字代碼I + J + K,但我啥子要知道如何配置服務器上的文件與setTimeout函數的工作...是有一些限制?的setTimeout在node.js中 - 的JavaScript

所以,這裏是mycode的:

index.jade

!!! 5 
html 
    head 
    title Test 
    body 
    form(name='form1', method='post', action='') 
     label(for='1') 
     input#1(type='text', name='1') 
     label(for='2') 
     input#2(type='text', name='2') 
     label(for='3') 
     input#3(type='text', name='3') 
     input(name='submit', type='button', value='submit') 
    span #{result} 

app.js

var express = require('express'); 
     app = express.createServer(); 

app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.set("view options", { layout: false }); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(app.router); 
    app.use(express.static(__dirname + '/public')); 
}); 
app.use(express.bodyParser()); 
    app.get('/', function(req, res){ 
     var result; 
    res.render('index', {result: ''}); 
}); 


    app.post('/', function(req, res){ 
     var i = req.param('1', 0); 
     i = parseInt(i); 
     var j = req.param('2', 0); 
      j = parseInt(j); 

     var k = req.param('3', 0); 
     k = parseInt(k); 

     var r = i+j+k; 
     res.render('index', {result:r}); 

    }); 
app.listen(3010); 

如何等等來阻止用戶操作(單擊,雙擊,右擊)和show他是一個文本「你可以做任何行動」在第一個5秒的股利,然後用戶可以做的行動,但60秒後再次不能做任何行動......我可以用setTimout函數或如何做到這一點???

對不起,我的英語

+0

那麼容易與客戶方JavaScript,但我需要與服務器控制用戶對,所以我需要寫在服務器端的文件app.js該功能,我可以使用setTimeot或??? –

+0

'click','doubleclick','rightclick'等事件只發生在客戶端。服務器端獲取新的傳入請求等事件。雖然你可以在服務器端使用'setTimeout',但這並沒有改變任何東西。 – Esailija

+0

好吧,但是一個很好的解決方案來顯示我的一些div,將覆蓋所有屏幕5s,然後便宜...所以在CSS我會有一個寬度:100%,身高:100%,以及如何改變時間的可見性等。 5s後......所以當5s結束後我改變了可見性:可見...或隱藏一段時間後? –

回答

1

你不能在服務器端做到這一點。您必須插入阻止交互的客戶端JavaScript,並在5秒後再次解除阻止。

用於在客戶端執行此操作的代碼將是這樣的:

// this code should be executed when the client receives a message from the server. 
var overlay = document.getElementById("your-element-id"); 
overlay.style.visibility = "visible"; 

window.setTimeout(function() { 
    overlay.style.visibility = "hidden"; 
}, 5000); 

你應該採取以下步驟來實現你想要的:
1.用戶加載頁面。
2.用戶從服務器接收一個消息,指出他被任一指定時間後或從你解鎖用戶服務器的另一消息後同步
3.然後
4.最後在啓動遊戲

+0

好吧,但是是一個很好的解決方案,以顯示我的一些div,將覆蓋所有屏幕5s,然後便宜...所以在CSS我會有一個寬度:100%,身高:100%,以及如何改變時間的可見性等5s後......所以當5s結束後我改變了可見性:可見...或隱藏一段時間後? –

+0

,這是一個很好的解決方案? –

+0

爲什麼你想阻止用戶互動5秒?那麼我可以告訴你這是否是一個好的解決方案。 – chucktator