Vue在tradingView遇到的问题

本文介绍了一种解决K线图在刷新或重新加载时出现闪白现象的方法。通过修改charting_library.min.js文件中iframe的显示属性,并在onChartReady()方法中设置其display属性为block,同时加入自定义加载div,可以有效避免闪白问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

K线图刷新或重新加载时闪白

首先需要了解的是,闪白是 iframe的机制

所以只要解决掉iframe就可以了

首先找到 charting_library.min.js

搜索

找到配置项 style="display:block"

改为 style="display:none"

然后在 onChartReady() 方法里设置ifram的display为block,自己再写个加载div,就可以完美规避这个问题。

_this.chart.onChartReady(function () {
document.getElementById('your_chart_id').childNodes[0].setAttribute('style', 'display:block;width:100%;height:100%;');
});

转载于:https://www.cnblogs.com/xiaocongcong888/p/9478636.html

<think>好的,我现在需要帮助用户了解如何在本地环境中部署TradingView或自建类似功能。首先,我得先回忆一下用户提供的参考引用内容。引用[1]提到了TradingView的示例项目,特别是与Vue.js集成的示例,这可能对前端部署有帮助。引用[2]详细说明了Vue.js目录中的最佳实践,比如组件封装和数据加载,这可能在自建环境时需要考虑。引用[3]讨论了分布式事务处理,虽然主要关于事务同步,但可能涉及到后端服务的协调,不过暂时可能关联不大。 首先,用户的问题是关于本地部署TradingView或自建类似的环境。根据我的知识,TradingView本身是一个商业产品,通常需要购买授权才能在本地部署。他们的官方示例项目可能提供了如何集成图表库到现有项目中,但完整功能的本地部署可能需要联系他们的销售团队获取许可证。 接下来,用户可能需要替代方案,如果无法获得TradingView的授权,可以考虑使用开源库如Lightweight Charts或ECharts。这些库虽然功能可能不如TradingView全面,但适合基本需求,并且可以自由定制。 然后,我需要考虑技术栈的选择。用户提到的示例项目中有Vue.js和Angular的集成,所以可能需要指导如何在这些框架中嵌入图表库。例如,使用Vue组件封装图表实例,管理数据流和事件处理,确保图表响应式更新。 数据对接也是关键部分。自建环境需要实时或历史数据源,可能需要通过WebSocket或REST API获取数据,并转换为图表库所需的格式。同时,后端服务需要处理数据存储、用户认证和权限控制,可能涉及分布式系统的问题,如引用[3]中的事务处理,但这里可能更多是数据同步和一致性。 另外,用户可能关心部署的具体步骤,比如获取授权、搭建前端、配置后端、数据对接等。需要分步骤说明,并推荐相关工具和库。 最后,生成相关问题需要考虑用户可能遇到的后续问题,比如授权费用、性能优化、数据安全、移动端适配以及扩展功能等。这些问题可以帮助用户进一步深入解决方案的细节。 现在需要将这些思路组织成结构清晰的回答,分步骤说明,并确保引用正确的地方,比如示例项目的位置和Vue集成的部分。同时,要提醒用户注意授权问题,避免法律风险,并提供替代方案供选择。</think>### TradingView本地部署与自建方案分步说明 #### 一、TradingView官方方案 1. **获取授权许可** - TradingView图表库需通过企业授权获取本地部署权限,需联系其销售团队签订商业协议[^1] - 授权费用根据并发用户数、功能模块等因素确定 2. **部署基础环境** ```bash git clone https://github.com/tradingview/charting-library-examples.git cd charting-library-examples/vanilla npm install npm run start ``` - 示例项目包含VanillaJS/Vue.js/Angular等框架的集成模板[^2] - 需将获取的`charting_library`文件包替换示例中的空目录 3. **数据对接配置** ```javascript // 数据订阅示例 new Datafeeds.UDFCompatibleDatafeed("http://your-data-api.com") ``` - 需实现`getBars`、`subscribeBars`等接口完成K线数据对接 - 支持WebSocket实时数据推送 #### 二、自建替代方案 1. **技术选型建议** - 基础图表库: - **Lightweight Charts**(TradingView开源版) ```javascript import { createChart } from 'lightweight-charts'; const chart = createChart(document.getElementById('chart')); ``` - **ECharts**(Apache 2.0许可) ```javascript import * as echarts from 'echarts'; const chart = echarts.init(document.getElementById('chart')); ``` 2. **核心功能实现架构 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 数据采集模块 │───▶│ 数据处理引擎 │───▶│ 图表渲染层 │ └─────────────┘ └─────────────┘ └─────────────┘ ▲ ▲ ▲ │ WebSocket/REST │ 数据标准化 │ Vue/React组件 └────────────────────┴────────────────────┘ ``` 3. **Vue集成示例** ```vue <template> <div ref="chartContainer" class="chart"></div> </template> <script> import { createChart } from 'lightweight-charts'; export default { mounted() { this.chart = createChart(this.$refs.chartContainer, { width: 800, height: 600 }); this.initSeries(); }, methods: { initSeries() { this.candlestickSeries = this.chart.addCandlestickSeries(); this.candlestickSeries.setData(/* 数据格式转换 */); } } } </script> ``` 需注意组件销毁时的资源释放 #### 三、关键技术点 1. **数据通道建设** - 历史数据存储推荐时序数据库:InfluxDB/TDengine - 实时推送使用Socket.io或WebSocket 2. **扩展功能开发** - 技术指标计算库:`technicalindicators` - 画图工具库:`fabric.js` §§ 1. TradingView企业授权的具体费用范围是多少? 2. 如何优化高频数据下的图表渲染性能? 3. 自建方案如何实现多用户权限控制系统? 4. 移动端图表适配有哪些最佳实践? 5. 如何扩展自定义技术指标分析功能? : TradingView官方示例项目提供多框架集成方案 : Vue组件化封装可提升代码可维护性 [^3]: 分布式系统设计需考虑数据一致性要求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值