var chartData = []; // 保存所有数据
var pageSize = 1000; // 每次加载数据的条数
var currentPage = 0; // 当前页码
// 加载数据的方法
function loadData() {
var data = chartData.slice(currentPage * pageSize, (currentPage + 1) * pageSize);
chart.dataProvider.loadData(data);
}
// 切换页码的方法
function setPage(page) {
currentPage = page;
loadData();
}
// 初始化图表
var chart = AmCharts.makeChart("chartdiv", {
// 配置图表属性
...
// 设置数据
dataProvider: {
// 不设置 data,因为数据由 loadData 方法加载
loadError: function() {
alert("数据加载失败");
}
},
// 其他配置 ...
});
// 添加初始化处理程序
AmCharts.addInitHandler(function(chart) {
// 创建 worker
var worker = new Worker("dataworker.js");
// 监听 worker 的 message 事件
worker.onmessage = function(e) {
if(e.data.type == "data") {
chart.dataProvider = e.data.dataProvider;
chart.validateData();
}
else if(e.data.type == "error") {
alert("数据加载失败");
}
}
// 向 worker 发送数据
worker.postMessage(chart.dataURL);
}, ["serial"]);
// 在图表配置中设置使用 worker
var chart = AmCharts.makeChart("chartdiv", {
// 配置图表属性
...
// 其他配置 ...
});
3