"Renderelés" események Power BI-vizualizációkban
A vizualizáció minősítéséhez renderelési eseményeket kell tartalmaznia. Ezek az események lehetővé teszik a figyelők számára (elsősorban a PDF-be való exportálást és a PowerPointba való exportálást) a vizualizáció renderelésének időpontjáról és az exportálásra való készenlétről.
Fontos
Minden olyan vizualizációnak, amely adatokat exportál (például Egy PowerPoint- vagy .pdf-fájlba ) renderelési eseményeket kell tartalmaznia, hogy az exportálás ne kezdődjön meg a vizualizáció renderelésének befejezése előtt.
A renderelési események API három metódusból áll, amelyeket a renderelés során kell meghívni:
renderingStarted
: A Power BI-vizualizáció kódja meghívja arenderingStarted
metódust, hogy jelezze, hogy a renderelési folyamat elindult. Ez a metódus mindig a frissítési módszer első sora, mivel itt kezdődik a renderelési folyamat.renderingFinished
: Ha a renderelés sikeresen befejeződött, a Power BI-vizualizáció kódja meghívja arenderingFinished
metódust, hogy értesítse a figyelőket arról, hogy a vizualizáció képe készen áll az exportálásra. Ennek a metódusnak kell lennie a vizualizáció frissítésekkor végrehajtott kód utolsó sora. Ez általában, de nem mindig a frissítési módszer utolsó sora.renderingFailed
: Ha probléma merül fel a renderelési folyamat során, a Power BI-vizualizáció nem jelenik meg sikeresen. Ha értesíteni szeretné a figyelőket arról, hogy a renderelési folyamat nem fejeződött be, a Power BI-vizualizációs kódnak meg kell hívnia a metódustrenderingFailed
. Ez a metódus egy opcionális sztringet is biztosít a hiba okának megadásához.
Feljegyzés
A renderelési események a vizualizációk minősítésének követelményét képezik. Nélkülük a vizualizációt a Partnerközpont nem hagyja jóvá közzétételre. További információkért tekintse meg a minősítési követelményeket.
A renderelési események API használata
A renderelési módszerek meghívásához először importálnia kell őket az IVisualEventService szolgáltatásból.
visual.ts
A fájlban adja meg a következő sort:import IVisualEventService = powerbi.extensibility.IVisualEventService;
Az osztályban
IVisual
szerepeljen a következő sor:private events: IVisualEventService;
constructor
Az osztály metódusábanIVisual
this.events = options.host.eventService;
Most már meghívhatja a metódusokatthis.events.renderingStarted(options);
, this.events.renderingFinished(options);
és this.events.renderingFailed(options);
ahol szükséges, a frissítési metódusban.
1. példa: Vizualizáció animációk nélkül
Íme egy példa egy egyszerű vizualizációra, amely a renderelési események API-t használja.
export class Visual implements IVisual {
...
private events: IVisualEventService;
...
constructor(options: VisualConstructorOptions) {
...
this.events = options.host.eventService;
...
}
public update(options: VisualUpdateOptions) {
this.events.renderingStarted(options);
...
this.events.renderingFinished(options);
}
2. példa: Vizualizáció animációkkal
Ha a vizualizáció animációkkal vagy aszinkron függvényekkel rendelkezik a rendereléshez, a renderingFinished
metódust az animáció után vagy az aszinkron függvényen belül kell meghívni, még akkor is, ha nem ez a frissítési módszer utolsó sora.
export class Visual implements IVisual {
...
private events: IVisualEventService;
private element: HTMLElement;
...
constructor(options: VisualConstructorOptions) {
...
this.events = options.host.eventService;
this.element = options.element;
...
}
public update(options: VisualUpdateOptions) {
this.events.renderingStarted(options);
...
// Learn more at https://github.com/d3/d3-transition/blob/master/README.md#transition_end
d3.select(this.element).transition().duration(100).style("opacity","0").end().then(() => {
// renderingFinished called after transition end
this.events.renderingFinished(options);
});
}