如何从快速服务器动态地向客户端发送新号码

时间:2012-06-22 14:07:32

标签: node.js client-server express ejs

在快递服务器中,我有这个。

app.dynamicHelpers({
    dynamicValue: function(req, res) {
        console.log("returning a new value");
        return parseInt(Math.random() * 100);

    }

});

在客户端我有这个。

setInterval(function() {
        alert(<%= dynamicValue %>);
        }
        ,1000);

所以每一秒都应该显示一个新号码。

但事实并非如此。当页面加载时,会生成一个新的数字,但除非重新加载页面,否则客户端看到的数字总是相同的。

如何改变它来做它应该做的事情?

1 个答案:

答案 0 :(得分:1)

您正在此处混合服务器代码和客户端代码。语句<%= dynamicValue %>将值呈现到页面上的脚本中:

setInterval(function() {
  alert(<%= dynamicValue %>);
}
,1000);

变为

setInterval(function() {
  alert(82.9090561);
}
,1000);

此脚本稍后由浏览器解释。浏览器无法访问“服务器脚本代码库”。

为了在客户端上完成这项工作,您需要包含在页面上创建随机数的特定脚本:

<script type="text/javascript" src="dynamic.js" />

<script type="text/javascript">
  setInterval(function() {
    alert(smth.dynamicValue());
  }
  ,1000);
</script>