2011-12-10 101 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,因爲它有一個事件處理程序來知道何時嘗試另一個負載。

相關問題