Skip to content

2.4.3

Choose a tag to compare

@ONyklicek ONyklicek released this 29 Sep 05:30
· 108 commits to 2.x since this release

Changed

  • A menu item renders once per shape, not once per row. Action::renderForDropdown() compiles its item into a
    Skeleton and splices the click expression, the same way Action::render() already did for the button. A table's
    row context menu rendered every item for every row — 30–45% of a whole table render, 91 of 283 ms for an
    eleven-item menu on 25 rows — and now costs no view render per row. The markup is unchanged apart from the
    view file's own surrounding whitespace, which a compiled skeleton trims.
  • A request about one widget asks only that widget whether it is visible. A poll tick, a lazy load, a filter
    change and a widget's own action used to walk getVisibleWidgets() for the key, which asked every widget first —
    and isVisible() can cost as much as building the widget. Measured on a 12-widget dashboard, a tick went from
    10–18 queries and 40–60 ms to one query and under 10 ms. Same answer: found in the same layout, and it must
    still be visible.