2012-05-26 48 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