Použití fázovaného vkládání
Vložené analytické powerbi.load
Power BI a rozhraní API pro report.render
můžou zlepšit uživatelské prostředí tím, že vývojářům poskytne větší flexibilitu při vkládání sestav fází.
Za normálních okolností načtete vloženou sestavu pomocí powerbi.embed
:
let report = powerbi.embed(embedContainer, embedConfig);
Vložená sestava se načte a vykreslí v uživatelském rozhraní. Koncový uživatel pak uvidí všechny interakce s vykreslovanou sestavou. Pokud například použijete stav průřezu, koncový uživatel uvidí, že se průřez projeví po vykreslení sestavy.
Pokud chcete tyto interakce před koncovými uživateli skrýt, powerbi.load
a report.render
rozhraní API rozdělí proces vkládání do fází. Funkce powerbi.load
načte sestavu, abyste mohli pracovat s položkami, než koncoví uživatelé uvidí výsledky. Funkce report.render
pak zobrazí sestavu.
Náklad
Funkce powerbi.load
načte sestavu, ale nevykreslí ji, takže interakce můžou nastat předtím, než koncový uživatel uvidí výsledky. Můžete například použít powerbi.load
s report.getPages
a určit, která stránka se má koncovému uživateli zobrazit. Nebo můžete použít page.getVisuals
a pak rozhodnout, které vizuály se mají zobrazit nebo skrýt.
Podobně jako powerbi.embed
vyžaduje funkce powerbi.load
element HTML a objekt IEmbedConfiguration.
Po dokončení zatížení se aktivuje událost loaded
.
let config = {
...
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Load the report in the container.
let report = powerbi.load(embedContainer, config);
report.on('loaded', function() {
...
});
Poskytnout
Pokud používáte powerbi.load
, musíte po spuštění kódu zavolat funkci report.render
na funkci obslužné rutiny události loaded
. Pomocí report.render
můžete pokračovat v vykreslování sestavy a zobrazit vloženou sestavu.
Událost rendered
se aktivuje, když se sestava dokončí vykreslování.
report.on('loaded', function() {
report.render();
});
report.on('rendered', () => {
...
});
Další informace o zpracování událostí naleznete v tématu Zpracování událostí.
Příklad
Následující příklad kódu načte sestavu, nastaví filtry a pak vykreslí filtrovanou sestavu.
// Build the config object.
let config = {
type: 'report',
tokenType: TokenType.Embed,
accessToken: ...,
embedUrl: ...,
id: ...,
...
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Load the report in the container.
let report = powerbi.load(embedContainer, config);
...
report.on('loaded', async () => {
await report.setFilters(filters);
report.render();
});
Důležité informace a omezení
Postupné vkládání může zpomalit vykreslování sestav, proto ho nezapomeňte použít správně a jenom v případě, že ho potřebujete.
Po načtení sestavy a před voláním report.render
můžete volat následující rozhraní API:
Metoda | Akce |
---|---|
BookmarksManager.getBookmarks, BookmarksManager.apply | Získejte a použijte záložky. Zachytávání záložek se nepodporuje. |
Report.updateSettings | Aktualizujte nastavení sestavy. |
Report.applyTheme | Použijte motiv sestavy. |
Report.getFilters, Report.setFilters, Report.removeFilters | Získejte, nastavte a odeberte filtry sestav. |
Report.getPages | Získejte stránky sestavy. |
Page.setActive | Nastavte aktivní stránku sestavy. |
Page.getFilters, Page.setFilters, Page.removeFilters | Získejte, nastavte a odeberte filtry stránek. |
Page.getVisuals | Získejte vizuály stránky. |
Visual.getFilters, Visual.setFilters, Visual.removeFilters | Získejte, nastavte a odeberte filtry vizuálů. |
Visual.getSlicerState, Visual.setSlicerState | Získejte a nastavte stav průřezu vizuálu. |