我在使用 Apollo 和 Angular 2 组合分页、预取和重新获取数据时遇到问题。我在应用程序中的预期行为是服务器和客户端之间的数据永远不应该有任何差异。我想通过在菜单中预取数据 onmouseover 来减少用户的加载时间,并在每个组件中都有一个微调器/加载屏幕来隐藏内容,直到数据被获取。如果一个组件已经被访问过,我想触发一次重取而不是预取 onmouseover,以便客户端与服务器匹配。
今天,如果我导航到一个组件并分页到例如显示该组数据的第三页,然后导航到另一个组件,然后再次返回到第一个组件(在完成新数据的获取之前),我得到来自第三页的缓存数据会触发微调器隐藏,并在订阅获得“正确”数据之前显示错误的数据集一/几秒钟。
我的问题是:有什么方法可以清除/控制特定查询/watchQuery 的缓存,以便我始终确定不在客户端显示缓存数据?