Performance Q&A guide

Couple more answers:

Bubble apps are limited by the number of workflow runs they use. Or is it the number of times a change is made to the database? If a workflow doesn’t modify the database, like if it hides an element on the page, does it not count against the limit?

Yes, we don’t count workflows against the limit that we can run entirely in the web browser, without talking to the Bubble servers. It’s more than just modifying data that requires the servers, though: logging the user in or out, hitting an external API, etc., all need that. Basically, the only things that don’t need the server are actions that work directly with elements on the page.

Is there a performance difference between navigating to another page in the app using a workflow action vs a link element vs a hyperlink in an html element? Like, maybe if it’s a workflow the page can load only what it needs, but if it’s a normal hyperlink the page has to load from scratch? Anything like that?

A link element will be as fast as a hyperlink in an html element. Changing it via a workflow action won’t be faster, but it might be a little slower – we wait to change the page if there are other workflows that haven’t finished saving data.

Can we profile a page to find out which part of the process is causing the biggest delay? For example, this is a page with a repeating group. Some of the elements populate with data right away, but the same element in another cell doesn’t populate. The rest of the data loads eventually.

Profiling web pages is a complicated subject – can’t really give a full tutorial here. Google Chrome comes with a lot of powerful tools for seeing how things load… there’s an intro here: Chrome DevTools  |  Chrome for Developers

In the gif you posted, it looks like its the images that’s slowing things down. If you use the network tab of the Chrome dev tools, you can see a) how big each image is, b) when it starts loading, c) how long it takes to load

The constraints on the “do a search for …” will be, show invoices of:

Company = current page company
Status = yes
Someone suggested to use in the company a field of a “list of invoices” but the invoices could be more than 10.000.

So what I did is not to load at page load all the invoices, but just 25. The problem is that when the user clicks of see “all invoices” it could take about 3-5 minutes to load them all, right now users have about 300 invoices per company.

So what you’re doing is a good way of structuring it – if you have that many invoices per company, it’s better to have a “Company” field on each invoice which you filter on… that’s generally pretty efficient. And then only displaying the first few invoices in a repeating group. For “see all invoices”, rather than try to display 300 things on a page (which is going to be a little slow no matter what tool you use), I’d suggest trying to use a repeating group in infinite scroll mode, so the user can just keep scrolling down til they find the one they want. Or, maybe provide them with better search tools to narrow the list down.

6 Likes