本文提供有关在应用程序中更快地呈现报表、仪表板和磁贴的建议。
注释
请记住,加载时间主要取决于与报表和数据本身相关的元素,包括视觉对象、数据大小以及查询和度量的复杂性。 有关详细信息,请参阅 Power BI 优化指南。
更新工具和 SDK 包
保持工具和 SDK 包更新至最新版本。
- 使用最新版本的 Power BI Desktop。
- 安装最新版本的 Power BI 客户端 SDK。 我们不断发布新的增强功能,因此请确保不时跟进。
- 使用最新版本的 表格编辑器。
初始化嵌入
预加载
使用 powerbi.preload() 提升终端用户性能。
powerbi.preload()该方法将下载 JavaScript、css 文件和其他项,这些项稍后用于嵌入报表。
如果未立即嵌入报表,请调用 powerbi.preload() 。 例如,如果嵌入的 Power BI 内容未显示在主页中,则用于 powerbi.preload() 下载和缓存用于嵌入内容的项。
启动 iFrame
注释
启动 iFrame 需要 Power BI 客户端 SDK 版本 2.9。
powerbi.bootstrap(element, config) 允许在所有必需的参数可用之前开始嵌入。 引导程序 API 准备并初始化 iFrame。
使用启动 API 时,仍然需要在同一 HTML 元素上调用 powerbi.embed(element, config)。
例如,此功能的一个用例是并行运行 iFrame 引导程序和后端调用,以实现嵌入功能。
小窍门
在最终用户可见之前,尽可能使用 Bootstrap API 生成 iFrame。
嵌入报表或其他 Power BI 项时,请确保嵌入容器是 DOM 的一部分,并且显示 CSS 属性未设置为 none ,因为这可能会导致意外行为。 如果要隐藏嵌入容器,请考虑使用可见性 CSS 属性。
嵌入参数
该方法 powerbi.embed(element, config) 接收元素和配置参数。 配置参数包括具有性能影响的字段。
嵌入 URL
避免自行生成嵌入 URL。 相反,请确保通过调用 GetReports、GetDashboards 或 GetTiles API 来获取嵌入式 URL。 URL 中的 配置 参数用于性能改进。
Permissions
如果不打算在编辑模式下嵌入报表,请提供 “查看 ”权限。 这样,就不会花费时间初始化仅在编辑模式下使用的组件。
筛选器、书签和切片器
通常,报表视觉对象会随缓存的数据一起保存。 执行查询时,报表呈现缓存的数据。 如果提供了筛选器、书签或切片器,则不会使用缓存数据,视觉对象只有在视觉查询结束后才会被渲染。
如果使用相同的筛选器、书签和切片器嵌入报表,请使用已应用的筛选器、书签和切片器保存报表。 以这种方式保存报表时,它会使用包含筛选器、书签和切片器的缓存数据进行渲染,从而提升性能。
在报表之间切换
将多个报表嵌入到同一空间时,不要为每个报表生成新的 iFrame 。 而是在同一 iFrame 中嵌入新报表以覆盖上一个报表。 使用powerbi.embed(element, config)和其他配置来嵌入新报表。
注释
使用为客户嵌入的报表(也称为“应用持有数据”方案)时,需要使用具有访问所有报表和语义模型权限的嵌入令牌。 有关详细信息,请参阅 生成令牌 API。
多个视觉元素
从同一报表嵌入多个视觉对象时,不要为每个视觉对象生成新的 iFrame 。 使用单个 iFrame 呈现具有指定视觉对象的报表。
将多个视觉对象嵌入单个 iFrame 时,请考虑以下几点:
Power BI 使用 iFrame 嵌入报表。 有时,你可能想要在视觉对象之间添加更多内容(例如,不是来自报表的文本或图形)。 在这种情况下,可能需要不同的 iFrame 来呈现不同的视觉对象。 为了获得最佳性能,请尝试排列视觉对象,以便尽可能使用最少的 iFrame。 若要减少 iFrame 的数量,请考虑使用 自定义布局功能。
如果具有来自不同报表或不同语义模型的视觉对象,请考虑联接语义模型并创建新报表,以便可以将所有视觉对象包含在同一 iFrame 中。
如果具有非连续区域或来自多个语义模型的数据,另一种替代方法是创建 仪表板 并将视觉对象固定到其中。 这样,便可以:
- 将单个 磁贴 嵌入非连续 iFrame。 仪表板磁贴比报表更轻,加载速度更快。
- 将整个仪表板嵌入一个 iFrame。 这样,就可以在一个 iFrame 中从不同的报表或语义模型获得视觉对象,而无需创建新的报表。
但是,请记住,仪表板磁贴不是交互式的,不会以与视觉对象相同的频率 刷新 。
查询缓存
具有 Power BI Premium 容量或 Power BI Embedded 容量的组织可以利用查询缓存来加快与语义模型关联的报表的速度。
度量性能
性能事件
若要度量嵌入式性能,可以使用两个事件:
- 已加载事件:在报表初始化之前的时间(Power BI 徽标在加载完成后消失)。
- 已渲染事件:使用实际数据完全渲染报告所需的时间。 每次报表重新渲染时,都会触发渲染事件(例如,应用筛选器后)。 若要度量报表,请确保对第一个引发的事件执行计算。
缓存数据在可用时呈现,但不会生成其他事件。
性能分析器
若要检查报表元素的性能,可以使用 Power BI Desktop 中的性能分析器。 通过性能分析器,可以查看和记录用于度量每个报表元素的执行方式的日志。
注释
请始终记得将嵌入式报表性能与 powerbi.com 的性能进行比较。 这可能有助于了解性能问题的起源