我正在设计需要一些响应时间的API REST服务。 我想知道哪种方法更好,发送几个请求以获取最终响应,或者保留该请求直到响应准备就绪。 例如,
一所学校有120名学生,并且需要1分钟才能获得所有学生的姓名。
每10秒发送一次请求以获取20名学生的名字,直到我们获得120名学生是否很好。还是1分钟后与120名学生保持请求和回复?
(请注意,某些浏览器和httpClients在1分钟后使请求超时,因此存在风险) (请注意,发送更多请求可能会被检测为DOS Attack)
答案 0 :(得分:0)
对于类似的问题,我列出了pro / con列表,然后查看结果。通常,在创建这些列表时,会出现一个更好的解决方案。
这两者都没有明显的技术优势。
请求一分钟后,用户会认为服务已关闭并重新加载页面吗?那确实会造成DDoS攻击。
用户会阅读全部120个条目吗? Google只会返回一些,因为经验表明大多数人都阅读前三名。
为什么要花这么长时间?数据库中的索引错误?还是您加载的数据过多?也许仅仅获取学生的姓名和部门以及年份就足够了。或创建一个保留视图表的作业,其中将查询的所有必需数据合并到一个表中。这样,加载数据仅需几毫秒。
或者加载20,如何显示它们并等待用户是否向下滚动(关键字“无限滚动器”)。另一个选择是分页(加载20个元素并显示下一个/上一个按钮)。