By Martin on Thursday, 17 October 2013
Posted in General
Replies 9
Likes 0
Views 1.6K
Votes 0
Hi! My name is Martin Andersen.
I have almost finished my Joomla Website, and i would like to upgrade the default Joomla Articles to EasyBlog, as it looks like a very nice blog component.
But im quite paranoid about performance, so ive ran Firebug and YSlow to your demo site to see what was loaded.
Ive found that up to 30 JS (283KB), 16 CSS (173KB)... Total 111 requests, 1.6MB and 19 seconds to load. Not very good results.

I know i can optimize, compress, merge and/or gzip all this, but my main concern: is all that resources of JS and CSS really needed for my blog?
There is any option in the back end to make it more lightweight? Some parts can be turned off? Specially "foundry" JS is consuming quite a lot!

I really like EasyBlog, but i cant compromise performance to much.
Hope you can answer me positively to be one of your next happy customers

Regards
Martin Andersen
Ok, i bought EasyBlog!
Now i see what you did. You merged all javascript into one single 430KB file!
Although this may be an improvement on request made to the server Im still thinking that there is too much JS!!!
Every part of that is needed for EasyBlog to work?
Why dont load only what is needed? Im sure that 430KB file has EVERYTHING, but most probably 95% of blogs only use less than 10% of that library all the time, and sometimes, when logged in, writting comments or other "complicated" stuff, other parts of the library are used.
Maybe splitting the library in "basic" stuff for non logged in users just browsing the blog, and "advance" for commenting, posting, and all that...
Its just a suggestion, as im aware that every component needs some "stuff" to work, but the problem begins when your site needs 3 or 4 different components, each using its own framework, some with jQuery, some with Mootools, then Mootools more, then Prototype, jQuery UI....
And you end up with a 3MB website... Quite difficult to swallow, if we think that not everyone has a 10/50/100Mb internet connection. And even though, that i do have a 20Mb connection, your EasyBlog demo takes 14s to load!! Think of those guys with a 1Mb connection! Oh my...
·
Saturday, 02 November 2013 21:30
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello Martin,

I think there's some misunderstanding here. Previously, javascripts are rendered asynchronously and we do not compress them into 1 single file. This causes multiple / tons of http requests made to the server (As per your post earlier). We have merged them into a single script instead to solve this issue.

If your web server supports gzip output, it is definitely reduced to a lower amount and the size of course doesn't mean that it will block your page execution since it is loaded asynchronously. You can also offload javascripts to a CDN server by using a plugin like CDN For Joomla from http://www.nonumber.nl/extensions/cdnforjoomla and this will definitely help you offload the weight to a CDN server while still speed up the time needed to load the JS file since the nearest POP would be used for your users.
·
Sunday, 03 November 2013 01:24
·
0 Likes
·
0 Votes
·
0 Comments
·
Hi Mark, thanks for your explanations.
I understand that merging into one file is a big improvement, reducing http requests. Also understand that gzip compression can help with the file size. CDN can also improve loading time, but still is not the improvement everyone can opt to.

My concern is about the need of such big JS library. Although load may not be blocked as its loaded asynchronously, the resulting weight of the site is increased considerably, and may be optimized just loading whats needed for displaying blog. And the remaining JS could be only for blogger, publishers, etc.

Im quite frustrated that every web development company use his own framework, his libraries, his CSS. And dont think about compatibility between them, or optimization. As i told you on previous post, using 2 or 3 different components on my website makes me load jQuery, jQuery UI, TimePicker, Mootools, Mootools More, Prototype, Bootstrap, and a lot other for a total of 1.8MB just for JS. Each component loads EVERYTHING, dont mind if its needed or not, if the component require such JS or its just loading it every time anyway.
I think a better and more ecological way of thinking would be to ask, what do we need for this? Is the user logged in? Its allowed to write comments? Can he write blog posts? According to the answers, load only what is required.

Dont misunderstand me. Im happy with EB, and i still want tu use it, even some of its behaviours dont like me. But i hope you can hear this comments that may start some spark that impulse you to improve this concern i have, and i know many other users also have.

Thanks for your time!
·
Friday, 08 November 2013 03:20
·
0 Likes
·
0 Votes
·
0 Comments
·
For a long time I was asking for fewer http requests - thank you very much for that I am yet to see it in action but will run some auditing again sometime.
There does have to be a trade off somewhere for this kind of thing and I have learned that using Joomla the site will never be as fast as it might otherwise be in a perfect world. In fact I am going to devote some time to looking for a different platform for my sites for just this reason. I DO get why joomla is why it is and what it is I just see that the users are asking for better and for my smaller sites I start to feel that something simpler is needed. I cant get my homepage under a 4.5sec load time on a shared server and this is killing the site usability for a lot and SERPS.
·
Friday, 08 November 2013 03:48
·
0 Likes
·
0 Votes
·
0 Comments
·
Hello guys,

If you are really an optimization geek, it is possible. But you need to really control everything via your Joomla template. The reason is because like calvin mentioned, there's tons and tons of modules / plugins / extensions that run on your site. If you are aware of what you are building, it should be optimized right under the template. Just like what we did here on our site's template.
·
Thursday, 14 November 2013 03:09
·
0 Likes
·
0 Votes
·
0 Comments
·
Maybe im missing something, but something like this would release much loading time to the front end:

visitor = person that access the blog, but its not a registered user
user = person that use the blog, its allowed to give feedback, vote, and other user related tasks
blogger = person that its a user, and its allowed to write blog posts / edit / publish and/or other extended abilities.

laod visitor css/js;
if(user == TRUE){
load user css/js;

if(blogger == TRUE){
load blogger css/js;
}
}


Most all people accessing the blog are visitor / users. And the big JS parts its for bloggers, so loading that only when needed would prevent many KB to be downloaded by people will never use them.

Again, this is just my point of view. Hope you dont take it personal, its just an opinion.
Regards
·
Monday, 18 November 2013 18:29
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for this idea Martin. Sounds like a good idea too but we still need to see the total size that would be shelved off if we split the dashboard / site js
·
Tuesday, 19 November 2013 01:18
·
0 Likes
·
0 Votes
·
0 Comments
·
It would be a grate addition. Hope sometime you can implement it.
Regards!
·
Tuesday, 19 November 2013 03:24
·
0 Likes
·
0 Votes
·
0 Comments
·
Thanks for the heads up on this I can't promise anything right now as our hands are pretty tied up with the existing development but it's definitely worth thinking about!
·
Tuesday, 19 November 2013 03:32
·
0 Likes
·
0 Votes
·
0 Comments
·
View Full Post