本文记录了基于 WebView 的 Flutter 可视化库: echarts_flutter 的一次优化加载性能的过程。
对于任何基于 WebView 的组件,html 的加载都是关乎性能的一个重要环节。 echarts_flutter 的基本原理是用 WebView 渲染本地的 echarts 图表,因此也不例外。
echarts_flutter 的 WebView 加载主要涉及以下几个部分:
- 模板 HTML
- echarts 脚本
- echarts 扩展脚本
- 图表逻辑代码
其中模板 html 和图表逻辑代码的体量很小,重点是 echarts 本体及扩展脚本加载。
Echarts 最强大的功能之一,就是具有很多功能强大的扩展,比如 WebGL 3D图表、Map 地图组件,在数据可视化要求越来越高的今天,这些扩展几乎成了和本体一样重要的部分,因此允许用户方便的引入扩展是一个必不可少的功能。此外为了避免麻烦的 asset 管理,我们希望无论是 HTML 还是 JavaScript 脚本,都能以字符串的方式处理,即 WebView 加载统一资源