Especially if the first page in the web application does not really use all that much richness to begin with. It is not uncommon to have a homepage that is largely static, pretty and heavily styled through CSS with perhaps a global search item, a couple of navigation links or buttons and maybe some newsfeeds or special offers. Or to start the application with a fairly simple login page.
This article describes how to reduce the (initial) download size to have the first page in an ADF 11g Rich Client Faces application display much more rapidly.
The Firebug overview of resources loaded for a plain ADF 11g Rich Web Application Page:
The all-11.1…….js resource you see listed has an uncompressed size of 2 Mb. In this example, running the application locally, it takes about 800 ms to download the library. Over a WAN or DSL connection, that time may increase to several seconds.
As it turns out, things are much easier than any home grown workaround. We do not need to create a home page that does not use rich components to prevent the 2 Mb download. We do not have to create a servlet filter that prevents the big chunk from being downloaded for the home page. There is a much neater facility in ADF 11g – though currently somewhat undocumented.
When I configure these three parameters like this:
the download hit for the same page I analyzed before has been reduced dramatically:
Of course there is some overhead in serving several smaller resources instead of only one; but if the combined size is very much smaller than the alternative very large one (30 Kb vs. 400 Kb) than it is quite possibly very much worth experimenting with.
Note: this functionality is at the present somewhat experimental, undocumented and probably unsupported. However, for anyone with qualms as to whether ADF 11g Rich Client Components can be used for internet applications, this clearly shows how Oracle are going to address this particular issue. I am convinced that in a release in the near future this functionality is fully supported and will enable us to bring our internet application into production with minimal JS overhead. Thanks to obfscation, compression and JS partitioning.
Thanks to Daan Horn for working together on this. Thanks to Frank Nimphius, Didier Laurent and Duncan Mills for their contributions.
Frank Nimphius on Configuring a default Splash page for ADF 11g applications
- Client Side programming in ADF Faces Rich Client Components
- ADF Faces Rich Client Components – Marrying JSF and AJAX together
- ADF 11g Rich Client Components – programmatically adding a ShowPopupBehavior
- Exploring Data Visualization with an HTML 5 Canvas based Tag Cloud powered by JSON
- My Report from the ODTUG Kscope13
- Java EE 7: Creating a background download manager using Java Batch in GlassFish 4.0
- ADF: (Automatic) Partial Page Rendering across Taskflows
- ADF client-side architecture – Select All
- ADF 18.104.22.168 : The return of the paging table (… and more ….)
- ADF DVT Speed Date: Interactive Bubble Graph
- Book Review : Oracle ADF Real World Developer’s Guide
- The ultimate ADF event of 2012: The AMIS Master Class Advanced ADF – Christmas Special (Friday 21st of December)
- Maak bij AMIS als eerste kennis met Oracle ADF Mobile!