Rendering can be deferred until the user clicks a button instead of running on page load — the report is loaded up front and built on demand.

Load the report, defer the build.
$report = new StiReport();
$report->javascript->relativePath = '../';
$report->onAfterRender = 'afterRender';
$report->process();

$report->loadFile('../reports/SimpleList.mrt');

How it works. Separating load from render lets the page appear instantly and build the report only when the user requests it.