Home > Forum > Forms > Slow-loading form due to a large number of versions and extensive data in the item list

Slow-loading form due to a large number of versions and extensive data in the item list
0

Hello,

One of our workflows has been poorly designed and currently has over 700 versions. The form contains an item list with more than 1200 rows. Each time the form is opened, it loads very, very slowly. Is it possible to initialize only, for example, the last 100 rows, and load the remaining rows on demand via a button? Do you perhaps have an idea how to feed new rows at the step I marked in the diagram? Currently, the rows are loaded into a technical table at those steps, and then pulled into the final table. Maybe it would be worth moving the row loading into the technical table into a subprocess? If I explained something unclearly, please let me know – I will describe it in more detail.


Thanks in advance for your support!

MVP

Hi Stanisław,

do you mean with last 100 rows that you want to have some kind of paging in the item list, to load the additional data, if the user wants to see it?

Regardless, I just improved the loading time of on of hour forms this week. In regards to the item list you have two main points.
- Loading time
This is the time of the "Getting model of workflow element (/api/nav/db/1/app/11/element/165/desktop)' row in the diagnostic mode
- Rendering time
This is the time of the creation of the HTML elements. Unfortunately, there no dedicated log for this.


Loading time
If you have choose columns with SQL in them, make sure that you don't reference fields of the item list row, if possible. This will execute one SQL statement for each row and field. Even if the SQL server would just take 2ms for the execution, it would be 2400+ms in your case. But the more connection there are, the slower it gets.
It's the same for data row columns, but I'm not sure whether there's a chance to reduce the number of SQL statements send to the server.
A data table will be execute in a single SQL statement and is therefore way faster when using data row columns.
As long as the item list is not hidden server side, field matrix or visibility restriction, it's data will be loaded. Hiding it via form rules is to late to prevent it.

Rendering time
If you don't need to display the item list by default, move it to a tab, so that it is not rendered. Unfortunately, WEBCON removed the option to render read only columns in an item list as plain text. Now always a deactivated input field is created. Due to this change the rendering of the data table elements is also faster then rendering an item list. Of course, you can add paging to it.



Best regards,
Daniel

In reply to: Daniel Krüger (Cosmo Consult)

Hi Stanisław,

do you mean with last 100 rows that you want to have some kind of paging in the item list, to load the additional data, if the user wants to see it?

Regardless, I just improved the loading time of on of hour forms this week. In regards to the item list you have two main points.
- Loading time
This is the time of the "Getting model of workflow element (/api/nav/db/1/app/11/element/165/desktop)' row in the diagnostic mode
- Rendering time
This is the time of the creation of the HTML elements. Unfortunately, there no dedicated log for this.


Loading time
If you have choose columns with SQL in them, make sure that you don't reference fields of the item list row, if possible. This will execute one SQL statement for each row and field. Even if the SQL server would just take 2ms for the execution, it would be 2400+ms in your case. But the more connection there are, the slower it gets.
It's the same for data row columns, but I'm not sure whether there's a chance to reduce the number of SQL statements send to the server.
A data table will be execute in a single SQL statement and is therefore way faster when using data row columns.
As long as the item list is not hidden server side, field matrix or visibility restriction, it's data will be loaded. Hiding it via form rules is to late to prevent it.

Rendering time
If you don't need to display the item list by default, move it to a tab, so that it is not rendered. Unfortunately, WEBCON removed the option to render read only columns in an item list as plain text. Now always a deactivated input field is created. Due to this change the rendering of the data table elements is also faster then rendering an item list. Of course, you can add paging to it.



Best regards,
Daniel

Thanks, Daniel, for the tips.
However, I still need the item list, because the data is edited there.
How can I enable 'tabs' on the item list to test whether it improves the form's performance?