Improving the Responsivness of an XPage/Custom Control with a View Panel in Domino Designer
In his presentation during the recent TLCC webinar, Mark Roden had some great tips on speeding up Domino Designer. During the open Q&A period, a question about improving the responsivness of DDE with a page containing a view panel was raised. In this post, I’ll provide a few tips to help.
There are times when there is a significant delay in Domino Designer (DDE) when attempting to view or modify properties of a View Panel control. Even in the source view, you may change a property and wait several seconds (or more) between each keystroke. Just clicking on the panel or a column or a subtab in the properties view can be very slow. With every click or keystroke DDE appears to be resolving the data source. The lag can become extremely frustrating, based on machine, server, and network performance. The constant delays can be a significant detriment to your ability to be productive.
Fortunately, there are a few things you can do to improve the situation.
Ensure that DDE Memory Settings are Correct
This tip isn’t view-specific, but for DDE performance in general.
When you install Domino Designer, the default memory settings are far too low. See this TLCC tip for information on how to provide more memory to Domino Designer, thus dramatically speeding up its performance.
Even if you fix the settings, they will be reverted when you upgrade to a newer version of Domino Designer.
The lag in working with a view panel is usually far, far, far (did I say “far”?) worse when working over a network on the server. If you can replicate the application locally for your development and replicate frequently to the server for testing, you will generally see a significant improvement in the responsiveness of Domino Designer when working with the view panel.
Compute the Data Source
If you cannot work on a local replica (or if that doesn’t speed up performance enough), you can compute the view’s data source.
When the data source is computed, Domino Designer no longer attempts to resolve it and read information every time you click on any part of the panel or use any keystroke to modify a property.
Originally, the view data source will look something like this:
<xp:this.data> <xp:dominoView var="view1" viewName="myViewName> </xp:dominoView> </xp:this.data>
When you compute the source, it looks more like this:
This provides a massive improvement in responsiveness — even when working on a remote server.
However, since the data source is not being resolved by Domino Designer, you will lose column selection drop-downs.
My recommendation is to implement the view panel and drag-and-drop the columns that you’d like in the view, then change the data source to be computed and modify formatting or other view properties after that.
Note: If you’re pointing to a different server or different database name, compute both of those properties as well to gain this performance benefit.