One of the most important non-functional requirements for successful implementation of an Intranet Portal is Performance. Studies by Microsoft has found that performance of Intranet Portals is key to adoption. Even a 500 milli-second increase in response time can potentially reduce the usage of the Intranet portal.
Below are the important things we must keep in mind when designing a performant intranet portal on SharePoint online.
1. Using Public CDN
Microsoft has recently announced the general availability of Office 365 Content Delivery Network(CDN) which can be enabled for SharePoint Online at tenant level. Using Content Delivery Network means we do not have to download all the files from tenant, instead they will be made available from servers which are nearer to client’s browser.
The below image from Microsoft depicts the logical flow of events:
This gives performance benefits as it is much faster to load scripts, thumbnail icons etc.., from CDN than from retrieving them from SharePoint folders.
Note that it might take up to 20 mins for changes to files to be updated in CDN servers across the globe. If there are applications where changes to production environments are required immediately then this approach might not work. Also, if there are any scripts that are confidential, then instead of public CDN opt for a private CDN.
2. Avoid Heavy processing
Home Page of an Intranet Portal is generally landed more than any of the other pages. Making it heavy with lot of complex functionality can deter its performance. One of the mistakes commonly made is to put a lot of functionality and data processing on Intranet home pages to show real-time data.
To have a performing home page, it is important to design the pages in such a way that the complexity of processing of data is abstracted out of the page load, wherever it is possible. Example: Instead of connecting to Oracle each time to get the department of the user logged in, the data can be synched to a list or user profile and it can be queried directly instead of calling Oracle API.
This approach might not work always when there is necessity to show real-time data integrating with external applications. In such scenarios we should follow good coding practices to avoid delays in loading.
3. Use good coding practices
The code we write will be executed a lot of times by lot of users and it has direct impact on the performance. It should be very efficient and optimized. Using best practices like the below during the development will surely help in improving the performance
- Make Fewer HTTP Requests:
If the HTTP requests are more, it takes more time for the browser to process them. So, it will be a good practice to reduce the number of such requests in the page load.
For Example: May be there are some calls happening on page for some plugins which are not even required for loading. Or there could be scenarios where user profile is being called more than once, which will result in more http requests.
- Bundling the JS files:
This is process which will combine multiple small JS files in a single JS file and in turn reduce the number of http requests. Example: There could be multiple JS files that are used for different web parts on the sites, it can be bundled together.
- Avoiding 404 Errors:
When referencing resources from external systems, it important to test if that resource path is reliable or not. Each of resource not available 404 error is very costly and impacts performance.
4. Using Optimal Image Sizes
Modern Intranet portals use images extensively for visually appeal. Images sizes can range from Kilobytes to Megabytes and incorrect usage of images can lead to slow loading of pages. Therefore, we should use ensure that we should use optimal quality of images without disturbing the visual appeal.
Using Image renditioning, we can optimize the images that are loaded on to the page. This was first introduced in SharePoint 2013 and this feature is available in SharePoint Online.
5. Move to Modern Frameworks
Over the last couple of years Microsoft has started categorizing different components of SharePoint into Classic and Modern. Components from 2013 version are being termed as classic where as Microsoft is investing heavily in Modern experience with an objective to provide seamless experience across Office 365. Modern Team Sites and Communication sites are steps in that direction.
Microsoft has released SharePoint Framework to develop client-side web parts for the Modern Team sites. As browsers get more advanced and powerful, client-side web parts will perform better than their server-side counterparts. With SharePoint Framework we can leverage Open Source frameworks like React, Angular JS into intranet portal development centered around performance.
It is possible to design and develop intranet applications which can load in 2-3 seconds using modern sites and frameworks. Acuvate’s MESH is one such solution which can help you as an intranet accelerator.