Share via


Usare l'incorporamento a fasi

Le API e report.render l'analisi powerbi.load incorporata di Power BI possono migliorare l'esperienza utente finale offrendo agli sviluppatori maggiore flessibilità per l'incorporamento dei report in fase.

In genere, si carica un report incorporato usando powerbi.embed:

let report = powerbi.embed(embedContainer, embedConfig);

Il report incorporato carica e esegue il rendering nell'interfaccia utente. L'utente finale visualizza quindi eventuali interazioni con il report sottoposto a rendering. Ad esempio, se si applica uno stato del filtro dei dati, l'utente finale visualizza l'effetto del filtro dei dati dopo il rendering del report.

Per nascondere queste interazioni dagli utenti finali, le powerbi.load API e report.render suddivideno il processo di incorporamento in fasi. La powerbi.load funzione carica il report in modo da poter interagire con gli elementi prima che gli utenti finali visualizzino i risultati. La report.render funzione visualizza quindi il report.

Caricamento

La powerbi.load funzione carica il report ma non la esegue il rendering, quindi le interazioni possono verificarsi prima che l'utente finale visualizzi i risultati. Ad esempio, è possibile usare powerbi.load con report.getPagese quindi specificare quale pagina visualizzare l'utente finale. In alternativa, è possibile usare page.getVisualse quindi decidere quali oggetti visivi visualizzare o nascondere.

Come powerbi.embed, la powerbi.load funzione richiede un elemento HTML e un oggetto IEmbedConfiguration .

Al termine del carico, viene generato un loaded evento.

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() {
    ...
});

Rendering

Se si usa powerbi.load, è necessario chiamare la report.render funzione nella funzione del loaded gestore eventi, dopo aver eseguito il codice. Usare report.render per continuare il rendering del report e visualizzare il report incorporato.

Un rendered evento viene generato al termine del rendering del report.

report.on('loaded', function() {
    report.render();
});

report.on('rendered', () => {
    ...
});

Per altre informazioni sulla gestione degli eventi, vedere Come gestire gli eventi.

Esempio

L'esempio di codice seguente carica un report, imposta filtri e quindi esegue il rendering del report filtrato.

// 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();
});

Limitazioni

L'incorporamento in più fasi può rallentare il rendering del report, quindi assicurarsi di usarlo correttamente e solo quando necessario.

È possibile chiamare le API seguenti dopo aver caricato il report e prima di chiamare report.render:

Metodo Azione
BookmarksManager.getBookmarks, BookmarksManager.apply Ottenere e applicare segnalibri. L'acquisizione dei segnalibri non è supportata.
Report.updateSettings Aggiornare le impostazioni del report.
Report.applyTheme Applicare il tema del report.
Report.getFilters, Report.setFilters, Report.removeFilters Ottenere, impostare e rimuovere i filtri del report.
Report.getPages Ottenere le pagine del report.
Page.setActive Impostare la pagina del report attivo.
Page.getFilters, Page.setFilters, Page.removeFilters Ottenere, impostare e rimuovere i filtri di pagina.
Page.getVisuals Ottenere gli oggetti visivi della pagina.
Visual.getFilters, Visual.setFilters, Visual.removeFilters Ottenere, impostare e rimuovere filtri visivi.
Visual.getSlicerState, Visual.setSlicerState Ottenere e impostare lo stato del filtro dei dati visivo.

Passaggi successivi