我正在构建一个Web应用程序,其中用户可以喜欢页面上显示的一些选择。
我想以最有效的方式构建这个类似/不一样的系统。每次按like按钮是否需要将http请求发送到node.js服务器以修改Mongo中的用户数据?
我问,因为我将拥有一个python脚本作为推荐系统,以监听MongoDB中发生的所有更改。
答案 0 :(得分:1)
是的,每次点击都应通过回调来到达服务器。有人可以说:
您还可以使用此功能进行调整,例如将特定用户喜欢的所有帖子的ID弹出数组,然后在会话结束时或特定时间后将其发送回去。
但是,如果该数组由于某种原因错误地丢失了数据怎么办?还是由于某些原因会话失败?另外,其他用户将如何查看喜欢或不喜欢的帖子?
看到这些是我们总是每次回送响应的原因。但是,JQuery和其他框架可以使其快速运行。
答案 1 :(得分:0)
每按一次like按钮,是否需要将一个HTTP请求发送到node.js服务器以修改Mongo中的用户数据?
是的,您需要以某种方式将数据发送到服务器。通常,HTTP请求是一个不错的选择,并且不必像以前那样繁重。
首先,您的服务器应启用HTTP保持活动状态,请求完成后,基础TCP连接将保持打开状态一段时间。这样,可以在同一连接上发出后续请求。
此外,您应该确保已启用HTTP / 2,由于其二进制性质,这是一种更有效的协议。更重要的是,像Cookie
之类的标头和不重复的标头不会一遍又一遍地发送。
通过遵循这些最佳实践,您会发现您的请求/响应距离现有连接仅几字节。而且,您无需更改代码中的任何内容即可!
答案 2 :(得分:-1)
如果您期望成千上万的用户,那么使用传统的RESTful api可能不是此处的最佳选择。我建议您针对用例研究websocket。