Esri / geoform-template-js

GeoForm is a configurable template for form based data editing of a Feature Service.
http://esri.github.io/geoform-template-js/
Apache License 2.0
67 stars 83 forks source link

Investigate performance enhancements #379

Closed driskull closed 8 years ago

driskull commented 9 years ago

@CTDisasterManagement It would be good if at near the end of the milestone, we could investigate ideas for how to improve performance. Maybe conditionally loading more resources, using a build script to minimize/concat data or something like that. Anything we could do to speed up the initial load time and use less memory.

bogibrynjar commented 9 years ago

@driskull and @CTDisasterManagement , sure would get my vote as it would probably go a long way to solve the ESRI basemap timout issue we are seeing with 3G connections on mobile devices (see issue #349).

Keep in mind we have not tested the GeoForm with one of our own basemap services so we can not say for certain that it is a timeout issue since we can not set the timeout limit to what ever and see what happens.

driskull commented 9 years ago

thanks @bogibrynjar. Yes, that might have something to do with it. I'll investigate more

driskull commented 9 years ago

We're loading a lot of plugins for jQuery and such. The idea is to improve initial loading performance. We should be able to lazy load or conditionally load some of these instead of loading them all at the beginning.

For example, if the form doesn't have a date field, don't load the datepicker plugin or load the datepicker plugin after the page has been rendered.

We also need to work on a build script that will compress all JS and CSS files and possibly combine them in order to decrease file size and loading times.

This script will need to be run after any modifications and a flag in the config set whether to use the compressed or uncompressed versions.

These are the types of things we need to improve upon so that we can minimize resources and make the app faster.

driskull commented 9 years ago

http://gruntjs.com/

bogibrynjar commented 9 years ago

Everything you mentioned sounds good to me but I have to admit I am not a programmer so I don't know exactly what is possible or what the newest programming solutions are. From a layman's point of view though it sounds very good to be able to "set a flag" in the config to dictate if a compressed or non-compressed version of the form should be used. If not set by the user then something in the code that triggers it automatically like it's now when you get mobile versions of sites when you view them on mobile devices but desktop versions when you view them on desktops.

driskull commented 9 years ago

The flag is more for a developer to set once done modifying the source code and it's built. The same code will run on desktop/mobile/table. (responsive design). We just need to minimize the code and optimize it so that it only loads what it needs at the appropriate time.

driskull commented 8 years ago

closing. 4x version will be faster.