Decreasing the loading time of the Persona Bar

Overview

Administrators may report that it takes a significant amount of time to load the persona bar for users, this is mainly due to the export-bundle.js file. By enabling Dynamic and Static Content Compression, it can speed up the loading time of the Persona Bar.

 

Requirements

  • Access to the web.config file in the DNN root directory.

 

Diagnosis

When the Persona Bar loads in the browser, it first gets the export-bundle.js file and needs to parse the JSON before loading the icons based on the user permissions.

There are two types of compression offered by IIS:

  • Static content compression 
  • Dynamic content compression.

If the static compression is enabled, then IIS will compress static content and save it to the cache folder.

If the dynamic compression is enabled, IIS will compress content each time a client requests it, since the dynamic content is created depending on a client request and because of it changes often. 

In most cases, there is no need to perform this process unless a JSON payload request is taking too long to complete, this can be verified by pressing F12 and using the developer tools in the browser to look at the timing of the request.

 

Solution

  1. To enable compression for JSON, make sure that Dynamic Content Compression and Static Content Compression are enabled on the webserver. This can be verified from the Windows Features section. For further insight on how to enable both content compression kindly go through this article on HTTP Compression <httpCompression>

  2. Then proceed to enable both the Dynamic and Static Content Compression for your Site on IIS using the below steps:
    1. Open Internet Information Services (IIS) Manager.
    2. In the Connections pane, go to the connection, site, application, or directory for which you want to enable compression.
    3. In the Home pane, double-click Compression.
    4. In the Compression pane, check the boxes to enable static and dynamic compression.
    5. Once you have completed the above steps, click Apply in the Actions pane.

    You can confirm the changes has taken place by opening your DNN Site web.config file. and search for "urlcompression" and it should look like this: <urlCompression doStaticCompression="true" doDynamicCompression="true" />.

    3. After the confirmation, add the below script to the applicationHost.configfile:  (The applicationHost.Config File can be located at "C:\Windows\System32\inetsrv\config"
    <httpCompression>
    <dynamicTypes>
    <add mimeType="application/json" enabled="true" />
    </dynamicTypes>
    </httpCompression>
    4. In case the node already exists in the applicationHost.configfile, only add the JSON mimeType entry.

    5. Proceed to access your DNN Site.

 

Testing

The JSON payload request is completed (this can be verified by looking at the network tab in the browser developer tools by pressing F12) and the persona bar loads normally with no delays.

Comments

0 comments

Article is closed for comments.