筛选数据时如何避免社区连接器(community connector)重复调用getData方法
解决Community Connector筛选器触发重复getData调用的方案
- 开启连接器内置缓存
在连接器的getConfig响应中新增cacheControl配置,设置maxAge为合适的缓存时长(单位为秒),相同请求参数的调用会直接命中缓存,不会触发新的API拉取。参考配置代码:function getConfig(request) { return { configParams: [ // 原有配置项保持不变 ], cacheControl: { maxAge: 3600 // 可根据数据更新频率调整时长,示例为1小时 } }; } - 拆分筛选器与表格的数据源
不要用同一个连接器实例同时为表格和筛选器提供数据,单独做一个极简的连接器实例专门生成筛选器的可选值,仅拉取筛选字段的去重值,体积小拉取速度快,就算触发调用也不会占用过多资源,主表格对应的连接器可以单独配置更长的缓存时间。 - 固定筛选器的可选值
如果筛选器的可选值不会频繁更新,直接在控件配置中手动录入固定选项,不要用连接器动态生成可选值。这种情况下筛选器本身不会触发任何连接器请求,只有表格初次加载时会调用一次getData,后续选中筛选值只会在前端做数据过滤,不会触发新的接口请求。 - 在连接器侧实现请求去重逻辑
可以用PropertiesService存储最近拉取的全量数据和对应请求的时间戳,新的getData请求进来时,先判断当前请求的筛选条件覆盖的数据是否已经在已存储的全量数据范围内,符合要求就直接返回已存储的数据,不用重新调用第三方API。
内容的提问来源于stack exchange,提问作者Vyacheslav
相关产品推荐
相关产品推荐

