更新服务器端渲染客户端

我有一个服务器端模板引擎Jade,我用它来渲染布局。 当客户端第一次接收到布局时,布局中可能需要更新的内容只会有小的变化,而不是布局本身。

有没有办法通过改变需要更新的东西来“放弃”客户端,同时使用Jade的力量。

你可以通过socket.io来实现 ,我目前正在开发Node.js中的程序来完成它,并且有一个工作原型 – https://github.com/parj/tableUpdates/tree/tableUpdate

该视图是使用翡翠呈现在服务器端。 需要改变的组件,我从服务器端发送一个json,parsing它在客户端,只使用JavaScript更新所需的组件。

在server.js中,你可以看到我放在一起然后发出的可变货币的json。 在客户端,它是在public / javascript / buildtable.js中接收和处理的

我已经上传了最新的代码 – server.js每秒运行randomChanges(),并随机发送JSON数据给客户端。 客户收到重build表后。 希望这是你在找什么。

在客户端使用jade有一些解决方法。 您可能可以利用这两个模块:

  • browserify
  • jadeify

这可以让你做这样的客户端:

var $ = require('jquery'); var jadeify = require('jadeify'); var msg = jadeify('msg.jade', { title : 'foo', body : 'bar baz quux' }).appendTo($('#messages')); 

我在工作人员身上有node.js,c#,PHP和Python团队,所以我必须记住广泛的解决scheme,所以我试图去思考,而不是像node.js本身那样具体。 请记住,如果你不喜欢这个,请记住。

您可以通过使用JavaScript分隔您的数据和您的UI来结束。 列出你的页面上的脚本源,给它一个随机查询string的值,但它实际上是去获取你的数据的服务器端代码。

 <script src="/mypagedata?ran=[put random here to avoid caching]"></script> <script src="/displaypagedata.js"></script> 

让脚本源文件有一个值,如:

 window.pageData = { [whatever] }; 

然后让“/displaypagedata.js”replace页面上的数字值。 这样你可以保持你的视图是静态的。 你也可以编写“/displaypagedata.js”,在窗口加载到相同的“/ mypagedata”之后通过不断地请求加载脚本文件来使用长轮询。 我build议使用jQuery.getScript,因为它有一个事件处理程序来知道何时尝试另一个负载。