代码
//订阅可见逻辑范围更改
//判断是否需要获取历史数据
this.chart.activeChart().onVisibleRangeChanged().subscribe( null,({ from, to }) =>{
console.log('onVisibleRangeChanged:',from, to,getThisTime(from).now)
});
onVisibleRangeChanged是拖拽k线屏幕的事件监听方法当用户拖拽后回调函数to就是目前可视tradingview屏幕最左边那一列的时间我们可以根据这个值来判断自己的所有K线数据是否已经快显示完了跟滚动底部分页相同显示完了或者接近显示完了的时候调用分页的请求获取下一页的数据。
建议
1.K线图历史数据最好使用请求。
2.K线图每次到阶段过渡时候的数据。比如1分钟的周期每到59秒后下一秒要生成一条新的K线那么这种数据最好是使用socket由后端整点推送过来。
3.K线图的实时k线一直在根据成交量变化的K线使用socket。
4.跟后端沟通通过一个时间和条数推荐100来获取历史数据是最佳的解决方案。
5.实时K线不要追加到K线数组中不然不好操作最好独立出来。