When loading a large page that contains many macros in Confluence 7.2 and above, the performance impact on the browser is substantial enough that Synchrony fails and displays errors such as “The connection timed out. If it happens again, speak to your Confluence admin. You may be using a proxy server that prevents WebSocket connections.”
Using an example XHTML page that contains multiple macros, once the page is loaded using the Chrome browser the page itself is very unresponsive, and simple operations such as scrolling are difficult. When loading the page to edit or when saving edits to text the page freezes and there is a significant delay before actions take place. The same is true for buttons and cursor states.
Looking at the profiling and development tools in Chrome it’s clear that the majority of the time handling the page edit or load operation is spent on scripting and DOM processing. When the operation doesn’t complete in the default timeout set by Synchrony (In some cases 30 seconds) we see that the WebSocket opened by Synchrony has already been closed due to the delay in receiving the page content.
This results in the error we see regarding a proxy and whether it supports WebSocket connections.
This behaviour is tested and is not present in the latest version of Confluence 6.15, the page is easy to navigate and alter when using the same macros and the example page attached.
- Install and activate the Live Input Macros
- Install the Confluence Source Editor
- Using the example XHTML page export attached edit a page using the Confluence Source Editor and paste in the content from the example page temp.html.
- Attempt to navigate and perform edits on the page
The page should be able to be easily navigated and edited.
The page causes the browser to be unresponsive and there are problems with editing and saving the page. Errors such as “The connection timed out. If it happens again, speak to your Confluence admin. You may be using a proxy server that prevents WebSocket connections.” are displayed.
The below exception is thrown in the Chrome console.log
Matters improve slightly if the page is approximately 1/3 of the size of the attached example, and then saving can be completed - however the page editing experience is still hampered.