【发布时间】:2014-05-17 21:22:24
【问题描述】:
我在我的一个项目中使用 Express.js,基本上,我想要实现的目标很简单:
- 页面显示从数据 mongodb 集合中提取的条目列表
- 当用户添加新条目时,客户端 jQuery 会收集输入并触发对服务器脚本的 AJAX 调用
- 服务器代码将数据添加到 mongodb 集合中
- 服务器通知客户端重新渲染模板代码,因此列表将被更新
我遇到问题的地方是#4,正如我所提到的,我想让客户端使用更新的数据重新渲染模板,而不是使用 jQuery 操作 dom。
我尝试过使用 socket.io,但是将它与 .ajax 一起使用,另外我必须传递 res 变量,这样我才能做 res.render 只是一团糟......
使用 Meteor.js,数据热推(订阅)是自动完成的,但 Express.js 肯定有办法做到的,对吧?有没有人这样做过?请帮忙!!!
【问题讨论】:
-
这不是 Meteor 的工作方式。在 Meteor 中,用户的输入在往返服务器之前反映在本地缓存中,这使得动作看起来很即时(这称为延迟补偿)。只有这样,客户端才会将更改操作发送到服务器并等待确认。如果未收到确认,客户端将还原本地更改。
-
你应该了解meteor内部是如何工作的,然后你就可以自己实现了。
-
天啊...这么久以来,我一直想接触 Angular,但从来没有机会真正理解它...现在我想我知道我为什么需要它了.. . 是的,像我一样愚蠢,花了这么长时间(从 2012 年底开始......)
标签: node.js express meteor socket.io