我尝试使用nodejs,express,socketio和mysql创建一个简单的聊天应用。我的问题是,将我从nodejs服务器中的mysql数据库查询的聊天历史数据发送到新连接的客户端应用程序的最有效方法是什么?我应该一次性发送查询结果并在客户端进行循环或在nodejs服务器中进行循环并将查询结果逐个发送给客户端吗?
答案 0 :(得分:1)
如果通过“高效”,你的意思是发送数据的带宽最小,那么发送一个更大的数据块几乎总是更有效率,然后发送大量较小的数据(因为每个数据都有相关的开销)传输)。您可以发送一个JSON编码的数组,其中数组中的每个项目都是历史记录中的一个步骤。当然,您可能希望将大量数据拆分为更易于管理的部分,因此如果您的总数据为数百MB,则可能不希望一次性发送所有数据。但是,如果聊天记录总数小于几十MB,那么最好立即将其全部发送(如果您的目标是全部发送)。
根据您发送的内容,具有大量重复属性名称的普通JSON数组并不总是最有效的发送格式,尽管它总是值得进行一次实验,或者打开压缩以查看是否有任何实验差异与否。如果没有准确了解您要发送的数据,我们就无法对此进行进一步评论。
将来,如果您询问有关特定代码的特定问题并显示您要发送的代码和数据,您将获得更有意义的答案。然后,我们可以针对您的具体情况确定答案,而不必猜测您的情况可能是什么。理论问题在这里几乎不可能与您的实际代码/数据有关的具体问题。出于某种原因,似乎有一种本能在没有您的实际代码/数据的情况下询问一般形式的问题,但这通常是错误的方式,并且更难以提供有意义且具体的答案。 / p>