vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4.x Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=245)
-   -   Board Optimization - United-Forum CSS Sprites - ludicrous speed - NOW! (https://vborg.vbsupport.ru/showthread.php?t=266696)

Osbes 07-11-2011 10:00 PM

United-Forum CSS Sprites - ludicrous speed - NOW!
 
1 Attachment(s)
tl;dr Makes your forum faster.

Want an easy one-click installation for this addon? . Vote for this jira-entry

Add on currently is in beta stage

When visiting a website, speed is a very important factor not only for users but crawlers as well. Long loading times are a nuisance since your time is basically wasted during the waiting period. Hence, we are trying everything we can in order to speed up our site. One great way to improve loading times is by the use of css sprites. Unfortunately these are not implemented by vBulletin.

We therefore decided to develop our own css-sprite add on for vBulletin boards and want to share this code with the worldwide vBulletin community.

Live demo
The add on is permanently running in our vBulletin board ( > 2.000.000 posts), take a look:
http://www.united-forum.de

The add on will be supported via this thread. If you have any questions, issues, improvements or feedback regarding this add on, please feel free to post a comment or write us a pm at any time. We are happy to discuss :)

vBulletin performance using css sprites
Our tests are based on version 0.7.0. We used the analytic tools firebug network utility and the googlelabs.com page speed site

on the client side the following parameter were used:
download speed: 5.7 MBit/s
ping: 31ms

https://vborg.vbsupport.ru/external/2011/10/15.png

https://vborg.vbsupport.ru/external/2011/10/16.png
css sprites - what are they?
The intention behind css sprites is the bundling of many small graphics into one large graphic in order to decrease the number of required http requests. This shortens the loading times of the given website. In addition, the the accumulated size of all small graphics is higher than the size of the sprite due to reasons of compression.
You can find further information in a great article by Chris Coyier.
What is the gain in using css sprites?
Aside from the technical implementation, the question on how much one actually does gain by using css sprites is of the most interest. Obviously they decrease loading times - but how important are small loading times and what is the impact on vBulletin overall loading times?

A short time ago, Jasper Aguila pointed out that speed is one crucial stickiness factor in his blog on vBulletin.com.
Quote:

Originally Posted by Jasper Aguila vBulletin Support
The internet has unfortunately contributed to the exponential decrease in attention span for many individuals. That's why this decade is seeing a trend in emerging technologies emphasizing the importance of speed request. It's crucial for your content to be promptly distributed in a timely manner, else bounce rate will increase - making you lose returning visitors. It's also important to note that slow sites may be penalized by search engines.

With better browsers, more powerful processors, and improved technologies constantly releasing each year, it's becoming quite difficult to provide excuses for slow loading pages. Therefore, try optimizing your server for speed. Read up and learn optimization techniques at vBulletin.com's Server Configuration forum.

In addition, the google ranking is influenced by the site speed as well.

Google Webmaster Central Blog
Quote:

Originally Posted by 09.04.2010 - Google Webmaster Central Blog
You may have heard that here at Google we're obsessed with speed, in our products and on the web. As part of that effort, today we're including a new signal in our search ranking algorithms: site speed. Site speed reflects how quickly a website responds to web requests.

vBseo Webmaster Mert G?k?eimam
Quote:

CSS sprites is a huge bonus for big boards , any big board owner definately should use it.
Last but not least, not only the user's loading time is reduced, but also does the server load decrease as the server will have to handle a lot less of http requests. This clears available connections and cpu time.
Add on features
In the current released beta version 0.7.2, sprites are available for FORUMHOME and FORUMDISPLAY. Coming up next SHOWTHREAD.

Sprites are created style based for all forum styles and saved in a folder which you can set via the imgdir_sprite stylevar. You have one additional button in the ACP (CSS-Sprites -> Refresh) which automatically creates all sprites, the according css definitions and includes those css definitions in the vBulletin css rollup files.
Installation

First of all, if you didnt want to change the templates manually, install the Template Modification System (TMS). Now proceed with the installation:
  • upload the contents of the upload folder into your forum home directory.
  • import the add on in the ACP
  • upon installation a new stylevar imgdir_sprite will be created. Update this stylevar based on your file structure - default value is the vbulletin sprite directory. Make sure the folder is writable, else the sprites can't be saved!
  • create the sprites via the ACP at CSS-Sprite using the Refresh option.
  • If you have installed TMS, you are done now. This was an easy gained speed up, not? If you didnt installed TMS and didnt want to do it, proceed with the next point:
  • in order to use the sprites, you then will have to edit some templates. The diffs (xou will find it in the do_not_upload folder show which parts you have to delete '<' and which parts to add '>' In addition, on top find the lines in which you will find the respective code.[/b]

Osbes 07-12-2011 09:51 PM

Frequently Asked Questions

Question
My Icon (mostly the paperclip) looks like http://dl.dropbox.com/u/246391/Robin_result.png (it is stretched and vertical lines are added), what can i do?
Answer
I assume you use a GD Libary older than 2.0.36.

GD had a problem handling grayscale images with alpha channel correctly, which was fixed with GD 2.0.36 in the year 2007.

The solution is to update the GD-Libary to 2.0.36 (or later) or replace every file which uses "gray+alpha" with an version using "color RGBA".
I would advise to update the GD-Libary, cause there is also a serious security problem, that was fixed by Debian in the year 2009.

For the embed Version of GD within PHP, this issue is fixed since PHP 5.3.0.
Question
Does this addon works with CDNs?
Answer
Yes. This addon has one side support for CDNs. One side meaning we can't write the sprite on your external server (and never can). But it doesn't has any problems reading the icons out of your CDN and writing it to a local filepath where your CDN sync function can distribute it to your CDN.
Question
How to add custom icons into the sprite?
Answer
The addon has the option to include custom icons. Be warned it's meant for advanced users (and style designers). An explanation can be found here:
https://vborg.vbsupport.ru/showp...&postcount=177
Question
I am using an Add-On for changing the forum icons (like www.vbulletin.org/forum/showthread.php?t=244351). When using CSS Sprites, my forum icons are reverted to the original state.
Answer
The feature to use forums custom icons is builtin in vBulletin 4. You can add to every forum an own imageprefix, so it will use forums custom icons. If you use the vBulletin imageprefix for your your forums, these icons will instantly added to the sprite.

An explanaition to this can be found in the vBulletin Manual (under Prefix for Forum Status Images):
https://www.vbulletin.com/docs/html/...orum_add_forum
Question
Google pagespeed still tells me that i should combine icons into sprites.
Answer
Despite covering hundreds of icons our addon can't cover everything. Especially gradients can't be automatically replaced since they differ a lot in custom styles. But, we do offer a hook so you can add your own icons into the sprite, based on the needs your board has.
A longer answer why we can't include gradients and all custom icons can be found here
https://vborg.vbsupport.ru/showp...2&postcount=49

To add the missing Icons yourself, please read: How to add custom icons into the sprite?
Question
Double background issue/ search icon dissapears
Answer
Some custom styles do include their own background, for example behind the search icon.
Since sprites replace the icons with the sprite background this gets in the way.
Solution: Modify your search icon to include both background and icon and refresh the sprite.

Osbes 07-12-2011 09:51 PM

Version 0.7.2 (06.08.2011)
  • now supporting folders for forum prefixes
  • sprite generation splittet to avoid timeouts on sites which a huge number of styles
  • checks if the gd version is 2.0.36 or higher (experimental)
Version 0.7.1 (01.08.2011)
  • added support for search.php pages including What's New
  • some minor bugfixes
Version 0.7.0 (01.08.2011)
  • full support for ltr/rtl
  • forum sidebar support added
  • FORUMDISPLAY support added
Version 0.6.3 (23.07.2011)
  • Added the possibility to use TMS for automatic template modification.
  • Icons can now be merged into different sprites and css rollups instead of one big sprite.
  • Addon is now compatible with vBulletin 4.1.x
Version 0.6.2 (17.07.2011)
  • Added support for http filepaths and therefore one-way support for CDNs
  • Templates are now using the cache system
  • clientscript/sprite_vbulletin_collapse.js removed.
Version 0.6.1 (17.07.2011)
  • bug-fix: using alternative paths for post icons could cause that these are not includes in the sprite.
Version 0.6.0 (17.07.2011)
  • possibility to add custom icons into the sprite via plugin-hook sprite_add_icon
  • added log output during sprite generation in the acp
  • option to deactivate using post icons in your sprite (default should be on)
Version 0.5.1 (12.07.2011)
  • Added support php versions < 5.3.0. Addon now just requires php5 due to TypeHinting
Version 0.5.0 (12.07.2011)
  • Add-On release
  • FORUMHOME css-sprite support

Jeff Ledger 07-12-2011 10:20 PM

Let's say

The goal is good but it's hard for other forums using different styles than yours use it.

Sprite require the css must be 100% exactly, and if someone use custom icons they will need to make a different sprite also the css.

It takes even more time than the usually way to reedit sprite and css.

I prefer doing sprite css for every single style, means custom css and custom sprite png. This is more effective and useful than a product like that.

Btw nice mod. Keep up the good work

Jeff

Mooff 07-12-2011 10:31 PM

The goal of our Add on is to solve that problem. The Add on creates a different sprite for each style based on the used icons, their dimension (hight width) and vbulletin stylevars.

We are using 9 different styles (not counting our mobile styles) and it works without problems in all of them. Without additional refinement.

The intention is to create an addon where the board admin doesn't have to know anything about html or css and still can use sprites.

Hornstar 07-13-2011 09:40 AM

Quote:

Originally Posted by Mooff (Post 2219806)
The goal of our Add on is to solve that problem. The Add on creates a different sprite for each style based on the used icons, their dimension (hight width) and vbulletin stylevars.

We are using 9 different styles (not counting our mobile styles) and it works without problems in all of them. Without additional refinement.


The intention is to create an addon where the board admin doesn't have to know anything about html or css and still can use sprites.

Awesome! Can't wait to test this then.

Thanks.

Jeff Ledger 07-13-2011 10:13 AM

Quote:

The goal of our Add on is to solve that problem. The Add on creates a different sprite for each style based on the used icons, their dimension (hight width) and vbulletin stylevars.

We are using 9 different styles (not counting our mobile styles) and it works without problems in all of them. Without additional refinement.


The intention is to create an addon where the board admin doesn't have to know anything about html or css and still can use sprites.
Sounds promising, will test it and give you feedbacks.

Jeff

final kaoss 07-14-2011 02:39 AM

Yeah it sounds like it has some potential

Barbaro 07-14-2011 03:41 PM

guau 4.1.4?

gracias

Mooff 07-14-2011 04:51 PM

I guess you want to know whether it does work with 4.1.4? ;)

We can't test it for ourselfs, since we are going to jump 4.1.4 and update with the release of 4.1.5.
BUT on the german ( www.vbulletin-germany.org ) modding site we received feedback that this addon does work well with 4.1.4


Regards Mooff


All times are GMT. The time now is 07:31 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01558 seconds
  • Memory Usage 1,792KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete