我需要在用户看到文章时收集信息。用户将在一分钟内浏览 1-30 篇文章(如果用户只是滚动浏览所有看起来特定的文章,可能会更多)。我想知道哪种方法可以将我的服务器成本保持在最低水平:
在客户端 javascript,我将文章 ID 推送到一个数组中,并在有 30-60 个 ID 时将其发送到服务器。在服务器上,我循环遍历所有 ID,并将它们插入数据库。
每当用户看到一篇文章时,我都会将一个文章 ID 发送到服务器。在某些情况下,这会导致一分钟内超过 60 个请求。在服务器上,我将 id 插入数据库。
最佳答案
在大多数情况下,总是需要权衡取舍。很多时候,最佳解决方案介于两者之间。我觉得你应该支持两者并根据情况交替使用它们。请完成以下场景:
- 您的最终用户会遇到带宽问题吗?如果是,则选择选项 2 或将文章数量减少到一定数量,以便在较低带宽下也可以轻松获取。
- 假设用户没有带宽问题,加载 30-60 篇文章不会花费用户很多时间,您可以选择选项 1,并继续使用此选项进行后续抓取。
- 很多时候使用选项 1 进行初始抓取然后抓取较少数量的文章是有意义的。
- 关于服务器成本,将 30-60 篇文章一起发送是有意义的,前提是用户要阅读所有文章。如果您觉得他不会全部阅读,请使用您应用的分析找到最佳数量,并一次发送这些数量的文章,前提是带宽不会成为用户的问题。
tl;博士;在您应该信任的数据中。使用您的直觉、现有的应用程序使用模式和用户的带宽可用性来做出明智的决定。此外,服务器成本并不是唯一的因素。我认为,经验更重要。
关于javascript - 许多小的或一个更大的 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44744531/