I use TWebPageControls all over the place and they work really, realy well. Super-useful in so many ways, I couldn't imagine working without them. However, I've recently run into an issue of performance when switching pages.
I have a TWebPageControl that has some TWebTabSheets that are filled with dozens of components and some that have litterally none (pages still in development). Switching between them is taking a long time, even swtiching between one blank page and another takes on the order of 2-3 seconds. On TWebPageControls that have fewer (total) components, switching time is barely noticeable. Note that I have TWebPageControls that themselves also have TWebPageControls in them.
When looking in the Google Chrome Performance tab, it seems all the time is spent within the rtl.module.rtl.createClass.DoUpdateResize call, which comes right after rtl.module.rtl.createClass.SetTabIndex and rtl.module.rtl.createClass.DoUpdateList.
This is starting to get beyond my level of understanding, but I'm guessing the DoUpdateResize call is not particularly picky about iterating through everything in TWebPageControl, whether it is visible or not or whether the page is visible or not? Seems if a page is not visible, it and its contents should be ignored entirely until it is? Not sure how I can bring about that kind of behaviour with the creative application of any enable/disable or beginupdate/endupdate calls anywhere? Certainly swtiching from one blank page to another should be instant, no?
The form that contains this particular TWebPageControl was also taking several seconds to load (dynamically) intitially, but marking it as Visible=False/Enabled=False in the IDE and then switching it on after the form loads considerably reduced the time taken to load the form. Likely the same issue.