弃用看板JS对象的isWaitForRender、isWaitForUpdate函数,它们不应作为开放API

This commit is contained in:
datagear 2021-08-04 11:18:34 +08:00
parent 77385c9c69
commit ef2911ccbb
1 changed files with 94 additions and 82 deletions

View File

@ -1199,8 +1199,7 @@
/**
* 开始监视处理看板图表循环查看它们的状态执行相应操作
* 如果isWaitForRender(chart)则执行chart.render()
* 如果isWaitForUpdate(chart)且图表的所有数据集参数值都齐备则执行chart.update()
* 如果图表需要渲染则执行chart.render()如果图表需要更新则执行chart.update()
*/
dashboardBase.startHandleCharts = function()
{
@ -1221,84 +1220,6 @@
this._doHandlingCharts = false;
};
/**
* 给定图表是否在等待渲染
* 等待渲染的判断条件
* chart.statusPreRender()为true
*
* @param chart 图表对象
*/
dashboardBase.isWaitForRender = function(chart)
{
return chart.statusPreRender();
};
/**
* 给定图表是否在等待更新数据
* 等待更新数据的判断条件
* 1. chart.statusRendered()为true
* 或者
* chart.statusPreUpdate()为true
* 或者
* chart.statusUpdated()为true且图表设置了定时刷新间隔且已到了该刷新的时间
* 2. chart.isDataSetParamValueReady()为true
*
* @param chart 图表对象
* @param currentTime 可选当前时间毫秒数默认取当前时间
*/
dashboardBase.isWaitForUpdate = function(chart, currentTime)
{
var wait = false;
if(currentTime == null)
currentTime = new Date().getTime();
//图表正处于更新数据ajax中
if(chart._inUpdateAjax())
{
wait = false;
}
else if(chart._inRequestRefreshData())
{
wait = true;
}
//图表更新ajax请求出错后应等待一段时间后再尝试避免频繁发送ajax请求
else if(chart._inUpdateAjaxErrorTime(currentTime))
{
wait = false;
}
else if(chart.statusRendered() || chart.statusPreUpdate())
{
wait = true;
}
else if(chart.updateInterval > -1
&& (chart.statusUpdated() || chart.status() == chartStatusConst.UPDATE_ERROR))
{
var updateInterval = chart.updateInterval;
var prevUpdateTime = chart._updateTime();
if(prevUpdateTime == null || (currentTime - prevUpdateTime) >= updateInterval)
wait = true;
}
if(wait && !chart.isDataSetParamValueReady())
{
//标记为需要参数输入避免参数准备好时会立即自动更新实际应该由API控制是否更新
chart.status(chartStatusConst.PARAM_VALUE_REQUIRED);
wait = false;
}
if(wait)
{
//wait为true时图表状态可能并不符合chart.update()要求比如chartStatusConst.UPDATE_ERROR
//所以这里需要校验设置
if(!chart.statusRendered() && !chart.statusPreUpdate() && !chart.statusUpdated())
chart.statusPreUpdate(true);
}
return wait;
};
/**
* 开始循环处理看板所有图表根据其状态执行render或者update
*/
@ -1313,7 +1234,7 @@
{
var chart = charts[i];
if(this.isWaitForRender(chart))
if(this._isWaitForRender(chart))
this._renderChart(chart);
}
@ -1324,7 +1245,7 @@
{
var chart = charts[i];
if(this.isWaitForUpdate(chart, time))
if(this._isWaitForUpdate(chart, time))
{
var group = chart.updateGroup();
var preUpdates = preUpdateGroups[group];
@ -1419,6 +1340,70 @@
});
};
/**
* 图表是否在等待渲染
*/
dashboardBase._isWaitForRender = function(chart)
{
return chart.statusPreRender();
};
/**
* 给定图表是否在等待更新数据
*/
dashboardBase._isWaitForUpdate = function(chart, currentTime)
{
var wait = false;
if(currentTime == null)
currentTime = new Date().getTime();
//图表正处于更新数据ajax中
if(chart._inUpdateAjax())
{
wait = false;
}
else if(chart._inRequestRefreshData())
{
wait = true;
}
//图表更新ajax请求出错后应等待一段时间后再尝试避免频繁发送ajax请求
else if(chart._inUpdateAjaxErrorTime(currentTime))
{
wait = false;
}
else if(chart.statusRendered() || chart.statusPreUpdate())
{
wait = true;
}
else if(chart.updateInterval > -1
&& (chart.statusUpdated() || chart.status() == chartStatusConst.UPDATE_ERROR))
{
var updateInterval = chart.updateInterval;
var prevUpdateTime = chart._updateTime();
if(prevUpdateTime == null || (currentTime - prevUpdateTime) >= updateInterval)
wait = true;
}
if(wait && !chart.isDataSetParamValueReady())
{
//标记为需要参数输入避免参数准备好时会立即自动更新实际应该由API控制是否更新
chart.status(chartStatusConst.PARAM_VALUE_REQUIRED);
wait = false;
}
if(wait)
{
//wait为true时图表状态可能并不符合chart.update()要求比如chartStatusConst.UPDATE_ERROR
//所以这里需要校验设置
if(!chart.statusRendered() && !chart.statusPreUpdate() && !chart.statusUpdated())
chart.statusPreUpdate(true);
}
return wait;
};
/**
* 渲染指定图表
*
@ -2108,6 +2093,33 @@
// < 已弃用函数 start
//-------------
// < @deprecated 兼容2.6.0版本的API将在未来版本移除已被私有函数dashboardBase._isWaitForRender取代
/**
* 给定图表是否在等待渲染
* 等待渲染的判断条件
* chart.statusPreRender()为true
*
* @param chart 图表对象
*/
dashboardBase.isWaitForRender = function(chart)
{
return this._isWaitForRender(chart);
};
// > @deprecated 兼容2.6.0版本的API将在未来版本移除已被私有函数dashboardBase._isWaitForRender取代
// < @deprecated 兼容2.6.0版本的API将在未来版本移除已被私有函数dashboardBase._isWaitForUpdate取代
/**
* 给定图表是否在等待更新数据
*
* @param chart 图表对象
* @param currentTime 可选当前时间毫秒数默认取当前时间
*/
dashboardBase.isWaitForUpdate = function(chart, currentTime)
{
return this._isWaitForUpdate(chart, currentTime);
};
// > @deprecated 兼容2.6.0版本的API将在未来版本移除已被私有函数dashboardBase._isWaitForUpdate取代
// < @deprecated 兼容2.3.0版本的API将在未来版本移除已被dashboardBase.chartOf取代
/**
* 获取图表没有则返回undefined