CalderaWP / Caldera-Forms

Drag and drop, responsive WordPress form builder.
https://CalderaForms.com
GNU General Public License v2.0
187 stars 163 forks source link

Conditional fields on front end are really slow #428

Open eli-g opened 8 years ago

eli-g commented 8 years ago

Ever since the update to Global Conditions, my multi-page form has become very slow. I have updated the conditions in my forms to the new condition group format.

I have 9 condition groups which hide or show between 7 - 15 fields depending on other field values.

The performance of the admin interface has improved, but the quality of the experience of the visitors has decreased significantly, reducing the conversion rate.

This is a major problem for me. As the form is for a loan application I cannot simplify it. Is this being looked into?

Thanks, Ellie

rmalt commented 8 years ago

You probably have a script error because you changed a slug for one of the condition group fields. Look for the error in console, or just check every slug name.

DavidCramer commented 8 years ago

@eli-g could you send me the exported (json) form ? I'm working on improving the speed and a slow form will help me a lot. if you can, please send to david@caldera.co.za

rmalt commented 8 years ago

my form not slow....it was a jquery error...which was fixed.

On Fri, Apr 1, 2016 at 3:16 AM, David Cramer notifications@github.com wrote:

@eli-g https://github.com/eli-g could you send me the exported (json) form ? I'm working on improving the speed and a slow form will help me a lot. if you can, please send to david@caldera.co.za

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/Desertsnowman/Caldera-Forms/issues/428#issuecomment-204281466

Chris2011 commented 7 years ago

One problem, what I think is the DOM manipulation. You always remove and add HTML to the rows/cols/fields. I have the same problem by show my hidden fields, which are not display: hidden, they are completely removed from the DOM. We have round about 30 condition groups and round about 105 fields.

In the condition groups, often I use "hide" to hide each field where the condition group is false. When I have a switch with 3 options and I hit option 1 it took round about 1s, when I switch from 1 to 3 it took me 2-3s. It will show 35 fields per option and overall, with option 3 it shows all 105.

So I would prefer to not remove the fields from the DOM, which is slow in general. Depends on how you do it with the JS logic. I would prefer to make each row or field to set to display: hidden. I don't have any errors in the console.

Regards

Chris