假设我有一个动态列表,随着扫描更多项目(在这种情况下通过蓝牙)扩展。我的想法是根据标准筛选出列表中的一些项目,因为我已经建立了一个端点来检查项目。
是否会更好:
完成列表,删除动态添加项目,针对端点检查整个列表,然后将其显示给用户?即fetch(/filterClaims/:list)
检测到每个项目(通过调用端点)?即fetch(/isclaimed/:id)
将预先过滤掉的所有项目列表发送给客户端(在本例中为手机)并过滤检测到的项目?即fetch(/claims)
后端已知的设备数量可能差异很大,目前最大值约为100台设备,但这可能会扩展到1000(s)
(旁注,如果有人建议改写问题标题,请成为我的客人:))
答案 0 :(得分:0)
一如既往,这取决于。变体3听起来很简单,对服务器要求最低,假设列表很短。
如果列表不经常更改,可以将其缓存在客户端中以节省带宽(服务器只是说NOT MODIFIED)。您也可以进行增量更新,但现在这是一个不成熟的优化。
变体2是变体1的一种特殊情况,因为检查单个项是检查列表的特殊情况。当/claims
列表很大或变化很大时,这是有道理的。在服务器端,我只实现检查列表。然后,客户端将检查尚未检查的所有项目(通常只是最近扫描的项目)。