动态墙更新:NodeJS

时间:2013-03-19 20:56:14

标签: javascript node.js dynamic

基本上,我创建了一个NODEJS应用程序,它使用Jade作为其模板引擎,以及Express和MySQL数据库。

我希望创建一个新页面,允许用户共享一部分文本,然后名为“Wall”的div将以新状态动态更新。

基本上,它理想地类似于Facebook,其中键入,共享某些内容,然后动态地下面更新页面。我还希望在用户朋友分享新帖子时更新墙信息页。用户共享的所有更新都将发送到数据库。

我进行了很多搜索,但似乎无法找到正确的答案。 我已将其缩小到使用以下任一项:JQuery,Ajax,PHP。

由于我正在构建的网站是用JS构建的 - 我最好的选择是什么?

我对这一切都很陌生,但我认为当用户点击共享时,它会调用一个JS文件,然后将更新存储在数据库中。但是如何让我的“墙”刷新新内容呢?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用...

setTimeout(function(){
  /* update wall here */
}, 1000)

轮询您的“Wall”后端并更新内容。

答案 1 :(得分:0)

你提出了一个概念性的问题。所以我会尽力解释一些概念选项,您可以选择进一步探索并自行研究如何在项目中最好地实现它。

你有两条路可走。 成功的AJAX写入数据库后,您可以拥有自己的墙更新(在UI端进行刷新/重新渲染),这将是您在AJAX回调函数中实现的 - 基本上是在您的AJAX回调函数之后执行的JS函数写请求(提交新帖子)到数据库返回成功。

您可以探索的另一个选项分支是实现以下任一选项,基本上“监听”服务器端的更改,并使重新呈现作为您使用的回调做出反应:

  1. Polling - 基本上每X个号码发出一次请求 秒检查是否有更新或状态更改 服务器端。

  2. WebSockets - 结帐Socket.io。通过这种方式,您可以将消息从服​​务器端“推送”到您的客户端。需要注意的是,WebSockets在每个浏览器中都不受普遍支持,而且从过去的经验来看,我发现WebSocket协议甚至因浏览器版本而异。因此,如果您需要普遍支持,我会采用轮询方法。

  3. 祝你的项目好运,希望这有帮助!