1

在快递服务器我有这个。

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

    }

});

在客户端我有这个。

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

所以每一秒,应该显示一个新的数字。

但事实并非如此。页面加载时会生成一个新号码,但客户端看到的号码始终相同,除非重新加载页面。

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

4

1 回答 1

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>
于 2012-06-22T14:19:41.283 回答