Hi On Monday, May 22, 2017, Surinder Kumar <surinder.ku...@enterprisedb.com <javascript:_e(%7B%7D,'cvml','surinder.ku...@enterprisedb.com');>> wrote:
> Hi > > As per pgAdmin4 design, template JS files can either be preloaded or load > when a specific node expands (by adding for e.g.: when: 'server'). > > The JS files of several modules found to be loaded when pgAdmin4 loads > which results in increasing: > > - the number of http requests > - latency(greater request time) > - pgAdmin4 load time > > *Tested on Firefox:* > > Before applying patch > > - http requests - 143 > - Content size - 3.4 MB > - Load time: 4.1s (onload: 524ms) > > After applying patch > > - http requests: 68 > - Content size: 2.1 MB > - Load time: 2.84s (onload: 481ms) > > This is great work! However (sorry!) - I'm planning on working on an alternative change on my flight in a couple of hours. Joao has broken the Grunt code out of the History tab patch for me to work with - the idea is something like: - We continue to migrate all the JS out of templates and into static files whereever possible, using the client-side translation. - We then have a set of Grunt tasks that will collect all the static JS, minimise it, and pack it into a single file to load at startup. I'm currently thinking that non-debug/package builds will pre-pack everything for installation. The aim is to have JS HTTP requests be down in single figures to maximise loading time. The are various issues to work through however; at least, how do we handle debug builds, and how do we re-pack everything if a user installs a new module (or updates something). We'd also need to get rid of requirejs. > > Also, I found the http request for gravtar takes much time(depending on > internet speed) to load which increases load time. > https://secure.gravatar.com/avatar/d30aea269994f01256a99a8e7 > 154a328?s=100&d=retro&r=g > > Shouldn't the gravatar image be replaced with custom image ? I don't see > its any use except displaying for user. > Maybe. Doesn't it load asynchronously though? > > *Patch changes:* > > 1) Load following modules JS when 'servers' node expands: > > - Roles > - FileManager > - Backup > - Datagrid > - Grant wizard > - Import/Export, Maintenance & restore > - Sqleditor > > 2) Load Debugger JS when database node expands > > 3) Load Flotr2 when render function is called in dashboard.js > > 4) Load BigNumber library when sorting is performed on Statistics tab in > backgrid.pgadmin.js > > 5) Remove 'backgrid.select.all' from dependency list(user_management.js) > as it had no use. > > After applying this patch, Menu items such "Query tool", "Grant wizard" > don't appear in Tools menu. > I have logged an RM2424 <https://redmine.postgresql.org/issues/2424> to > track this. > OK. Lets hold fire on this for now though, until I can PoC the work above. Of course, any thoughts or comments are welcome. -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company