我一直在为使用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