Metadata
- Source
- ENGAGE-434
- Type
- Improvement
- Priority
- Critical
- Status
- Closed
- Resolution
- Fixed
- Assignee
- Antranig Basman
- Reporter
- Antranig Basman
- Created
2010-02-22T14:19:20.000-0500 - Updated
2010-03-09T15:19:45.000-0500 - Versions
-
- 0.3b
- Fixed Versions
-
- 0.3b
- Component
-
- Kettle
- Screen Navigator
Description
Initial performance measurements on the iphone suggest that even jquery.js, a dependency generally held benign, can take around 1.9s to be fully processed by the client runtime, even ignoring any transmission costs. (Interestingly this time is split up as 0.7s of raw execution time, with 1.2s presumably being spent while tokenising and parsing the file). Since this is an entirely unacceptable per-page overhead, we must implement a new delivery system that avoids whole-page transitions on navigation, and instead packages all shared dependencies into a single bundle which is delivered to a stationary "mobileHome" page, with transitions performed by AJAX and injection. This will require some reworking of the underlying framework and libraries (in particular, reliance on inspection of URL state on the clientside, as well as native facilities such as history.back() etc.) but is intended to be "unobtrusive" - that is, the "base application" will continue to be available using traditional HTTP semantics, for desktop machines among others.
Colin has a trial implementation of some of these concepts in the scratchpad at https://source.fluidproject.org/svn/incubator/engage/client/trunk/screenNavigator/js/ScreenNavigatorLite.js
Attachments
Comments
-
Antranig Basman commented
2010-03-04T02:32:55.000-0500 These two patches, against engage-core and engage-kettle, enable the use of minified/concatted build files "MyEngage.js" (which must be placed in engage root) and "MyInfusion.js" (which must be placed in infusion/src/webapp).