# 8、最佳实践

## 创造最佳的用户体验

我们热爱我们的图表。并希望它们成为整个HTML5世界中最好，最漂亮，响应最快和功能最强大的图表。我们正在努力实现这些目标。

我们了解所有关于我们的图表以及使用它们创建最佳用户体验，我们很乐意与您分享我们的知识。本文档介绍了将图表库集成到您的网站/应用程序中的几种最佳实践。重点是始终考虑您的用户和他们的体验。

### 1. 了解图表库是什么，不是什么

图表库是一个能够显示价格，形状和技术分析工具的图表组件。我们的图表库使图表变得神奇，仅此而已。如果您想要一些额外的功能（如聊天，特殊的商品列表，最热门交易栏，广告等），最好的方法是在图表之外实现它们。但是，如果要将外部功能与图表库链接，可以使用图表库的API链接它们。

### 2. 返回与库请求一样多的K线

图表库将向您的后端询问数据，并在每次请求时提供所需的数据范围界限。请遵守这些范围界限并尽可能完整地返回填充此范围的数据。不要返回范围外的数据。如果要扩展库请求的默认数据范围，请使用我们的JS API（请参阅calculateHistoryDepth）。

### 3. 返回与库请求一样多的标记

与上述K线相同。只发送符合要求范围的标记。

### 4. 不要覆盖calculateHistoryDepth()以获取超过2个屏幕的数据

图表库避免加载用户没有要求的内容。在图表中加载更多的K线，意味着需要更多的CPU和内存。这意味着的响应效率会被降低。

### 5. 不要让你的图表看起来一团糟

用户喜欢漂亮的图表。我们也是。请务必在自定义尺寸或样式时保持图表看起来不错。避免嵌入看起来与整个图表样式不同的自定义控件。

### 6. 避免制作非常小的图表

图表库支持的最小尺寸是`600x600px`。避免使图表变的更小，因为它会看起来一团糟。请使用`mobile`预设，或者隐藏一些工具栏。

### 7. 使用适当的语言

图表库已翻译成数十种语言。使用符合用户需求的语言。

### 8. 如果您遇到问题

我们一直渴望为您提供帮助。但不幸的是，我们真的很忙，所以我们没有太多时间。 请帮助我们有效地利用时间，并始终将您的图表库的版本更新为最新的`unstable`版本，以检查问题是否仍然发生。如果有，请与我们联系。

另外，检查您传递给图表库的数据，并确保它符合我们的要求，如文档中所述。要特别注意SymbolInfo的内容，因为它是最常见的发生错误的地方（根据我们的统计）。

您可以观察我们的[演示数据服务](https://demo_feed.tradingview.com/quotes?symbols=AAPL) 的输出，并将其与您的对比，以确保您的后端数据是正确的。

在开发过程中始终在Widget构造函数选项中使用`debug：true`，并在生产环境中将其删除，以使代码更快地工作。

### 9. 阅读文档

我们花了很多时间为您创建这些文档，使您的生活更轻松。请试一试。

### 10. 为您的解决方案选择适当的数据传输

注意JS API和UDF之间的差异，并选择最符合您需求的API。 如果您需要真正快速的数据更新或数据流传输，请勿使用UDF。 如果您的后端有十几个商品，请勿使用UDF用于数据分组（请参阅`supports_group_request`）。

### 11. 不要尝试嗅探我们的代码并使用未记录的功能

我们的文档中未提及的所有功能都是可以更改的主题，没有任何警告和向后兼容性。此外，您签署的法律协议严格禁止更改源代码。

### 12. 不要在您的生产网站上使用我们的演示数据源

这个数据源只是一个演示，不适合实际使用。它可能不稳定，不能承受过大的负载。

### 13. 使用API进行自定义。避免编辑CSS。

我们不保证CSS选择器的向后兼容性。

### 14. 发送到客户端时，将服务器设置为gzip文件

这是静态HTML内容的常见最佳做法。加载图标库的HTML文件会减少用户的等待时间。

### 15.设置charting\_library.js的最小到期时间

除了添加到HTML文件的`charting_library.js`之外，图表库中的所有文件名中都包含哈希值。 将图表库更新为较新版本时，所有文件的名称也会更改。 如果浏览器从缓存中加载`charting_library.js`，则该文件中的所有链接都将被破坏。 应将此文件的到期时间设置为最小值，以确保浏览器不缓存该文件。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://zlq4863947.gitbook.io/tradingview/best-practices.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
