2011-12-10 103 views
2

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

有没有一种方法来“重新呈现”客户端仅通过改变哪些需要更新,并在同一时间使用玉的力量。

回答

2

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

该视图使用jade渲染服务器端。需要更改的组件,我从服务器端发送json,在客户端解析它,只使用JavaScript更新所需的组件。

在server.js,你可以看到在可变货币我放在一起,然后发出JSON。在客户端在接收和公共/ JavaScript的处理/ buildtable.js

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

0

有使用在客户端玉一些解决方法。你也许能够采取这两个模块的优势:

这允许你做这样的事情的客户端:

var $ = require('jquery'); 
var jadeify = require('jadeify'); 

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

我的node.js,C#,PHP和Python的团队工作人员,所以我必须要记住很多次广义的解决方案,所以我尝试这样认为,而不是被这样特定的Node.js本身。如果你不喜欢这件事,那么在记住我之前要记住这一点。

您可以通过分离您的数据和使用JavaScript的UI周围做一个结束。列出页面上的脚本源并给它一个随机的查询字符串值,但实际上它会转到一个获取数据的服务器端代码。

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

有脚本源在其内部都有一个值,如:

window.pageData = { [whatever] }; 

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

相关问题