We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
现在,仪表盘的查询和重置控制器的功能是全量的查询图表的数据,无论图表是否出现在可视区域,这在仪表盘中图表量少时没问题,一旦遇到复杂的图表并并且数量多时,很容易导致查询超时。实际场景中,这种情况还是会出现。
所以,如果查询和重置也能实现在可视区域的图表才执行execute,这样遇到复杂的仪表盘能极大的节约性能。
但是,查询的时候如何判断图表在可视区域呢?我有个想法是:查询或者重置时,将所有的图表的rerender字段全部置为false,再利用useRenderWidget这个hook的懒加载功能实现。
rerender
useRenderWidget
The text was updated successfully, but these errors were encountered:
将仪表盘所有的图表的rerender置为false太粗暴了,也会造成不必要的查询(没有关联控制器的图表)。可以将控制器关联的图表的rerender置为false。
Sorry, something went wrong.
上述方案,还存在另外一个问题。如果表格执行了分页查询,例如查询第二页,当点查询控制器时,此时页码不会重置为1,这样pageInfo的pageNo: 2,会有问题
可以按下面的方法优化:
const __widgetIds = Object.values(widgetMap).reduce((acc, cur) => { if (cur.config.type === 'chart') { acc.push(cur.id); } return acc; }, [] as string[]); Object.values(widgetMap).forEach(it => { if (it.config.type === 'chart') { dispatch( boardActions.changePageInfo({ boardId, widgetId: it.id, pageInfo, }), ); } });
No branches or pull requests
问题描述
现在,仪表盘的查询和重置控制器的功能是全量的查询图表的数据,无论图表是否出现在可视区域,这在仪表盘中图表量少时没问题,一旦遇到复杂的图表并并且数量多时,很容易导致查询超时。实际场景中,这种情况还是会出现。
期望
所以,如果查询和重置也能实现在可视区域的图表才执行execute,这样遇到复杂的仪表盘能极大的节约性能。
想法建议
但是,查询的时候如何判断图表在可视区域呢?我有个想法是:查询或者重置时,将所有的图表的
rerender
字段全部置为false,再利用useRenderWidget
这个hook的懒加载功能实现。现有仪表盘的查询逻辑
The text was updated successfully, but these errors were encountered: