Still slow after heavy optimization!

I have built a static site generator service and now I am trying to get it faster. I have built it in Javascript. I managed to concatenate and minify all angular.js scripts except for one. I also have minified all css and tried to make all images smaller.

http://www.webpagetest.org/result/160222_1W_DG6/1/details/

Still it looks as if the main problem is the external javascript CDN which has up to 5 sec DNS lookup time and has a size of aprox 2 Mb. I use Cloudflare and try to cache all on the first page.

What would the best aproach be? Collect all external scripts and concatenate them into one file and server them from my server?

Regards,

Göran

The consistency of the DNS time across multiple domains suggests to me that this is abnormal. Could you try rerunning the test from another location?

Better DNS lookup this time, form Dulles:
http://www.webpagetest.org/result/160222_2B_16PB/1/performance_optimization/#first_byte_time
[hr]
Still the same from Amsterdam: http://www.webpagetest.org/result/160222_WH_16TG/1/details/
[hr]
London: http://www.webpagetest.org/result/160222_35_17TX/1/details/

The long DNS times are probably caused by the browser being busy executing some js (the CPU is pretty much pegged). Try turning on a dev tools timeline capture in teh chrome tab of the advanced settings which will tell you what JS is running and how long it is taking.

Ah, ok. Yes I have lots of javascript. I have managed to minify and combine my own scripts so now there is only 58.

Is there a way to combine external javascript sources from CDN?

It’s not so much the number of files but the actual execution of the code in them. Combining/merging won’t change that. A dev tools timeline will help point out the really painful ones in case there’s a pathological problem.

Ok, not much I can do if it is a problem with an external script that my service is dependent on. If it’s really bad I will have to investigate it thou.

Thanks for your insight!
[hr]
I have a dude down in Cambodia on a slow connection with a Android smartphone which managed to use the service. So it appears to work.

I really think that you should at least download the external javascripts files (for example angularjs modules) and use a grunt job to combine/bundle all of them in one. The formation that I’m using is using bower for maintaining external javascript dependencies and grunt to combine all of them into one js file. It will greatly improve your website’s performance