【问题标题】:Dynamic Wall updating: NodeJS动态墙更新:NodeJS
【发布时间】:2013-03-19 20:56:14
【问题描述】:

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

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

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

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

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

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

非常感谢任何帮助。

【问题讨论】:

    标签: javascript node.js dynamic


    【解决方案1】:

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

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

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

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

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

    祝你的项目好运,希望对你有帮助!

    【讨论】:

    • Socket.io 似乎是下一个停靠港,感谢您的帮助 :)
    【解决方案2】:

    使用...

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-03
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多