Just wanted to report on what happened going off the Knockout reservation: it worked like a charm.
To put this in context, my task was to display
- dozens to hundreds of tables
- each with up to fifty columns and six hundred rows
- with each cell having data, dynamic CSS classes, and hover and click behaviours
- supporting sorting of tables by column and by row
- the whole lot being udpated every three seconds or so.
My first attempt using Knockout worked, but was woefully unresponsive, even after several rounds of re-engineering for optimisation.
The new version directly generates and updates the many thousands of DIV cells. The only concession to responsiveness is to limit the number of updates per "timeout" to around five hundred. This gives the illusion of instant response times with no perceivable ripple effect as updates propagate. The hover and click logic is handled by a pair of functions bound to the top-level container DIV. All the other controls on the page, templating etc., is still handled nicely using Knockout. Interestingly, the price I've paid for this direct approach is a modest reduction in the size of my code!