apache / echarts

Apache ECharts is a powerful, interactive charting and data visualization library for browser
https://echarts.apache.org
Apache License 2.0
60.69k stars 19.62k forks source link

[Feature] 想使用worker渲染echarts导出图片 #20527

Open missile-xuan opened 2 days ago

missile-xuan commented 2 days ago

What problem does this feature solve?

有渲染大量图表且弱交互的场景,想要将渲染和导出通过OffscreenCanvas放在worker中运行,在实际使用中因为work中没有window global 对象导致报错;

image

希望能兼容work的上下文WorkerGlobalScope

或者有没有其他可以直接通过worker渲染的办法?

What does the proposed API look like?

支持在worker中渲染导出

plainheart commented 2 hours ago

这段代码是开发环境用的,没对 global 不存在的情况进行兼容,可以先考虑手动注释掉该部分代码,看看是否后续逻辑仍会存在不兼容 worker 的情况,如有可以继续评论反馈,我们会针对性解决。

missile-xuan commented 1 hour ago

这段代码是开发环境用的,没对 global 不存在的情况进行兼容,可以先考虑手动注释掉该部分代码,看看是否后续逻辑仍会存在不兼容 worker 的情况,如有可以继续评论反馈,我们会针对性解决。

还是不兼容的 因为内部使用了document对象 创建canvas worker中不能使用document

missile-xuan commented 1 hour ago

具体情况是这样的:

/node_modules/zrender/lib/canvas/Layer.js 中调用了platformApi.createCanvas() 这个方法无法通过document创建canvas

image

导致报错

image
plainheart commented 17 minutes ago

想起来 echarts 里部分逻辑没有兼容 worker,考虑用 SVG SSR 试试看。