Exporting is key for many businesses and at Vizlib we know this. Being able to understand the requirements of exporting is important and when it comes to a highly used feature, as a developer or user, it is important to understand what the difference is between Client-Side and Server-Side rendering/Exporting. Both have advantages (and disadvantages) and you will be using them in different situations. For all types of export, the calculation time and the amount of data are important factors.
TABLE OF CONTENTS
Client-side rendering/exporting is when a user's device handles the extraction of the object's data (for data exports) and rendering of the visualization (for visual exports.)
Managing the process client-side relies on the user's device's performance. Everything needed for the process needs to be available on the device. Specifically, this means that all of the data has to be downloaded to the device. Aspects like the list below influence the speed at which an export will happen.
- RAM (memory) and CPU (processor) of the device
- Internet (the speed of the user's internet)
- Browser performance (i.e. there are differences between how well Chrome, Firefox, Safari and Edge handle the necessary calculations)
The main advantage of client-Side is that Vizlib can completely control the output result.
The drawback is that very large data exports may not be possible due to limitations on the device/browser.
Fig1: Client-side exporting sheet to PDF
Server-side rendering/exporting is when a user sends a request to the server and the preparations are done there. The resulting file is then sent to the user's device. Such actions may be downloading the data of a chart or generation of a PDF/image.
Server-Side rendering relies on the performance of the server. Aspects like the list below influence the speed at which an export will happen.
- RAM (memory) and CPU (processor) of the server
- Internet (the speed of the internet in both the server and the user's location)
Fig2: Downloading an unformatted export to Excel from the Vizlib Table
The main advantage of server-side is that even very large data exports can be managed. It also means Vizlib can rely on the Qlik native export functionality and any changes or updates to those are automatically used by Vizlib.
The drawback is that Vizlib has no control over the output.
What type of exports are used in Custom Report?
It depends. The Custom Report uses whatever export method is in the rendered object. For all native objects, the export is server-side. For Vizlib objects there is a mix. For example in Vizlib Table "Export formatted data to Excel" is client-side while all other exports are server-side.
When exporting from Vizlib Table my formatted export fails but the other exports work, why is that?
Most likely that is due to the amount of data you are trying to export. Since the formatted export happens on the Client-Side it will not benefit from the power of the server and the user device might be more limited. Making more resources available on the device might help but the recommendation is to use server-side exports for larger data exporting.