Comparison of embedding: Visualize.js vs. HTTP API (iframe)

Here is a list of differences between the client API Visualize.js (aka Viz.js) and the Repository HTTP API (aka iframe's), which are documented here:

This might help you decide which approach is best for you. The Web Services / REST API is not included here as it is normally for different use cases.

Comparison of Visualize.js and HTTP API
  Visualize.js HTTP API
Purpose Embed specific Reports, Ad Hoc Views and Dashboards Embed specific sections of the TIBCO JasperReports® Server UI
Required experience Some JavaScript is required No particular knowledge is required
Implementation Requires using the JavaScript code from Jaspersoft (the API itself), potentially merging with code from your application Requires using the corresponding URL from JasperReports® Server in an iframe tag
Ad Hoc support Can embed Ad Hoc views (since version 7.1) and Ad Hoc Reports. Cannot embed Ad Hoc designer for now (this is likely to change in future releases) Can embed anything that's currently included in the JasperReports® Server UI
Dashboard support Currently does not support embedding the Dashboard designer directly (this is likely to change in future releases). It can embed an already designed Dashboard though Can embed anything that's currently included in the JasperReports® Server UI
UI: list of repo objects Can be obtained via a Search function (see API reference below) Can be easily obtained by embedding a repo folder or a search
UI: look & feel Completely flexible, as it integrates seamlessly within your web application Depends on the implementation of themes in JasperReports® Server. Has some limitations
UI: user interaction Completely flexible, based on what your developer can implement in JavaScript. Allows to integrate existing behavior from your web application Does not allow to change how the user interacts with the UI, unless custom code is implemented on JasperReports® Server
UI: interaction between different elements embedded Possible, e.g. an embedded Report can control another Report You can only interact with a Report or a Dashboard through its URL, so you will be limited to passing parameter values and themes

For the full API reference of Viz.js, see:

And a list of Visualize.js samples on GitHub.

In general, unless there is a specific limitation preventing you from using Viz.js (e.g. no knowledge of JavaScript), we would recommend using that option as it provides greater flexibility and seamless integration with your web application. Plus, TIBCO Jaspersoft is continuing development of new features and improvements for Viz.js, therefore it's only going to get better in new releases. See 5 Reasons to Use Visualize.js Versus a Standard Charting Library for further details.