layui选项卡和echarts结合使用,切换tab时必须等待echarts加载完毕才能切换,如何点击tab立马切换
时间: 2023-08-11 17:35:11 浏览: 116
可以尝试使用异步加载Echarts图表的方式来实现切换tab时立即切换,而不必等待Echarts加载完毕。
具体方法如下:
1. 在页面加载时,只加载当前tab对应的Echarts图表,其他tab对应的Echarts图表暂时不加载;
2. 当切换到其他tab时,先显示一个loading动画,然后再异步加载对应的Echarts图表;
3. 当Echarts图表加载完毕后,再隐藏loading动画,显示Echarts图表。
示例代码如下:
```javascript
// 定义一个数组,存储已经加载过的Echarts图表
var echartsLoaded = [];
// 切换tab时的事件处理函数
function changeTab(tabIndex) {
// 显示loading动画
showLoading();
// 判断当前tab对应的Echarts图表是否已经加载过
if (echartsLoaded[tabIndex]) {
// 如果已经加载过,直接显示Echarts图表
showEcharts(tabIndex);
} else {
// 如果未加载过,异步加载Echarts图表
loadEcharts(tabIndex, function() {
// 加载完毕后,隐藏loading动画,显示Echarts图表
hideLoading();
showEcharts(tabIndex);
// 将已经加载过的Echarts图表保存到数组中
echartsLoaded[tabIndex] = true;
});
}
}
// 异步加载Echarts图表
function loadEcharts(tabIndex, callback) {
// 创建Echarts图表
var chart = echarts.init(document.getElementById('chart_' + tabIndex));
// 加载数据
// ...
// 调用回调函数
callback();
}
// 显示loading动画
function showLoading() {
// ...
}
// 隐藏loading动画
function hideLoading() {
// ...
}
// 显示Echarts图表
function showEcharts(tabIndex) {
// ...
}
```
这样,就可以实现切换tab时立即切换,而不必等待Echarts加载完毕了。
阅读全文