场景:
- 在我的网站上,我展示了书籍。
- 用户可以将每本书添加到“稍后阅读”列表中。
行为:
当用户进入该站点时,将向他们显示书籍列表。 其中一些已经在他们的“Read Later”列表中,有些则不是。
用户在每本书旁边都有一个指示,告诉他们该书是否已被添加到列表中。
我的问题
我在辩论哪种选择对我的情况是理想的。
选项1:
- 对于每本书,查询服务器是否已存在于用户列表中。
- 更新每本书的指标。
优点: 对服务器的请求非常小,响应非常简单(真或假)。
缺点: 在包含30本书的页面中,我将发送30个单独的http请求,这些请求可以阻止套接字,并且考虑到浏览器和服务器必须为每个事务执行整个握手,这个请求相当慢。
选项2:
- 我查询服务器一次,并获得一个响应,其中包含“Read Later”列表中的完整书籍列表作为数组。
- 在浏览器中,我查看了数组,并根据它是否存在于数组中来更新每本书的指示。
优点: 我只提出一个请求,并立即更新所有书籍的指标。
缺点: “稍后阅读”列表可能有数百本书,传递一个大数组可能会证明是缓慢而过度的。特别是在屏幕上没有出现30本书的情况下,只有2-3本。 (也就是说,我想检查某个书是否在列表中,为此我让服务器从列表中向客户端发送整个书籍列表)。
所以,
你会采用哪种方式来最大限度地提高性能:1还是2?
我有什么替代品吗?