* A helper thread which does some computation in the background and displays incremental results using JavaScript.
* This is appropriate when the computation may be slow—too slow to do synchronously within the initial HTTP request—and has no side effects
* (since it may be canceled if the user simply browses to another page while it is running).
* <ol>
* <li>Write a {@code <script>} section defining {@code function display(data)}.
* <li>Use {@code <l:progressiveRendering handler="${it.something()}" callback="display"/>} from your Jelly page to display a progress bar and initialize JavaScript infrastructure.
* <li>Implement {@code something()} to create an instance of your subclass of {@code ProgressiveRendering}.
* <li>Perform your work in {@link #compute}.
* <li>Periodically check {@link #canceled}.
* <li>As results become available, call {@link #progress}.
* <li>Make {@link #data} produce whatever JSON you want to send to the page to be displayed.
* </ol>
* {@code ui-samples-plugin} demonstrates all this.