纯HTML文件需引入Chart.js等库并用JS初始化图表实例,否则canvas或div仅为静态容器;Chart.js必须用canvas并调.getContext('2d'),ECharts需div且设显式宽高,均须确保DOM就绪后执行。

纯 HTML 文件无法直接“接入”图表库——你得把 JavaScript 库加载进来,再用 JS 初始化图表实例,否则 Chart.js 基于 HTML5 Canvas 渲染,不支持直接往 ECharts 渲染到普通 库文件加载失败时,浏览器控制台通常只显示 很多人 fetch 到新数据后直接赋值给 最容易卡住的地方不是语法,而是 DOM 节点是否真实存在、尺寸是否已计算、脚本是否在正确时机执行——这三个条件缺一不可,少一个,图表就静默失败。 或 Chart.js 必须用
且要先获取上下文 却没改标签,或漏掉 .getContext('2d')。
,并显式设 width 和 height(CSS 缩放会导致模糊)document.getElementById('myChart'),再链式调 .getContext('2d'),否则 new Chart(...) 会报 "Canvas is not valid"
<script></script> 标签里直接执行,改用 document.addEventListener('DOMContentLoaded', ...)
ECharts 要用
—— 不能只靠 CSS 类,内联样式最稳echarts.init(document.getElementById('main')),否则返回 null
resize 并调 chart.resize(),否则图表错位或留白CDN 引入顺序和跨域问题常被忽略
"Chart is not defined" 这类泛错误,实际可能是网络或顺序问题。
<script></script> 标签必须放在 底部,或加 defer 属性;放在 里又没 defer,容易因 DOM 未就绪而初始化失败cdn.jsdelivr.net 有时不稳定,可换为 https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.js 等备用源file:// 协议打开 HTML,部分 CDN 会因 CORS 拒绝加载——此时应改用本地 script 文件或起一个简易 HTTP 服务(如 npx http-server)数据更新不能直接改
data 对象myChart.data.labels = [...],结果图表不刷新——因为 Chart.js 不监听对象变更。
myChart.data.labels = newLabels + myChart.data.datasets[0].data = newData + myChart.update()
chart.setOption(newOption, { notMerge: true }) 或 chart.setOption({ series: [...] }, { replaceMerge: ['series'] }),不能只改 option.series[0].data
update(),可先节流,或用 chart.addData()(Chart.js) / chart.appendData()(ECharts)提升性能
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











