approved On Tue, Mar 8, 2011 at 5:20 PM, P T Withington <[email protected]> wrote:
> Change ptw-20110307-zoA by [email protected] on 2011-03-07 19:12:56 EST > in /Users/ptw/OpenLaszlo/trunk-devo > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: Reduce overhead of dynamic CSS styles > > Bugs Fixed: LPP-8945 Dynamic CSS rules need better caching > > Technical Reviewer: [email protected] (pending) > QA Reviewer: [email protected] (pending) > > Overview: > > Move the selection of dynamic CSS rules to getPropertyCache so > that getRulesCache is only executed once (or if new style rules > are added) rather than each time a dynamic rule dependency > changes. This makes a very slight penalty on the first > application of styles, but subsequent updating of dynamic rules > has its overhead significantly reduced. > > Details: > > LzCSSStyle: Rules now have a flag to tell if they are dynamic > (i.e., their selector includes an attribute value test). > getPropertyCache only selects dynamic rules that apply now. > Simplified the CSS constraint application: all constraints are > computed in getRulesCache and applied then, including the implicit > constraint on the parent's inherited property cache. Simplified > getRulesCache to cache all potentially applicable rules, including > all possible dynamic rules. Generalize _compoundSelectorApplies > to be callable for gathering dependencies or determining > applicability, and for completing an already matched tail or doing > a full (anchored) match. > > LzDebug: Fix brain-oh in explainStyleBindings, only explain > currently applicable dynamic rules. > > LzNode: Simplify __applyCSSConstraints, don't flush rules cache > for __reapplyCSS. > > PresentationTypes: Add missing type alias `token`. > > Tests: > > Files: > M WEB-INF/lps/lfc/services/LzCSSStyle.lzs > M WEB-INF/lps/lfc/debugger/LzDebug.lzs > M WEB-INF/lps/lfc/core/LzNode.lzs > M WEB-INF/lps/lfc/core/PresentationTypes.lzs > > Changeset: > http://svn.openlaszlo.org/openlaszlo/patches/ptw-20110307-zoA.tar > -- Henry Minsky Software Architect [email protected]
