我一直在爲使用Bukkit的幾個Minecraft服務器開發一個項目。我試圖創建一個包含服務器世界的動態地圖的網頁,以及一個實時事件更新系統,其中<div>
隨着服務器上的事件發生而更新。爲了簡要介紹我的系統如何工作,Minecraft服務器通過UDP數據包在同一網絡上與Node.js網絡服務器通信,Node.js網絡服務器使用這些數據包構建包含事件信息的JavaScript對象。然後存儲對象,並在請求頁面時傳遞給Jade。 Jade負責模板。使用動態內容加載頁面
我想要做的是動態更新此頁面,以便用戶不必刷新整個頁面來更新事件列表。我試圖實現的東西就像Facebook的代號,每當Facebook的朋友做一些事情,比如發佈狀態,評論帖子或者「喜歡」帖子時,都會更新。
在閱讀this question on SO,我已經得出結論,我需要使用長輪詢的PHP腳本,但我不知道如何使用PHP在Node.js的書面幾乎完全是一個網絡服務器整合我怎麼能這樣做呢?
編輯:
我已經在客戶方代碼遇到了問題。
這是腳本塊:
script(src='/scripts/jadeTemplate.js')
script(src='/socket.io/socket.io.js')
script(type='text/javascript')
var socket = io.connect();
socket.on('obj', function(obj) {
var newsItem = document.createElement("item");
jade.render(newsItem, 'objTemplate', { object: obj });
$('#newsfeed').prepend(newsItem);
console.log(obj);
alert(obj);
});
這是objTemplate.jade
:
p #{object}
// That's it.
當alert()
和console.log()
放置在腳本的頂部,它警報和日誌,但在底部,他們不執行(因此,我認爲這是一個問題,無論是創建newsItem
,jade.render()
,還是前置。
如果我需要提供更多的片段或文件,請告訴我。我仍然在修補,所以我可以自己解決,但除非我更新,我仍然需要幫助。 :)
我正要抱怨自己約不知道在哪裏開始,但是我刷新了頁面。 :)這很好,謝謝你的幫助。 – ChaoticWeg 2013-03-10 00:32:06
我遇到了客戶端代碼中的一個問題,我相信用'jade.render()'。我編輯我的問題相應:) – ChaoticWeg 2013-03-10 05:05:40
我會張貼作爲一個新的問題。 – 2013-03-10 05:29:55