Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vB4 SuperCharged - Optimises CSS, Javascript and HTML Details »»
vB4 SuperCharged - Optimises CSS, Javascript and HTML
Version: 1.51, by Darkimmortal Darkimmortal is offline
Developer Last Online: Oct 2021 Show Printable Version Email this Page

Category: Board Optimization - Version: 4.0.3 Rating:
Released: 12-05-2009 Last Update: 05-12-2010 Installs: 509
Uses Plugins
Additional Files Translations  
No support by the author.

This is designed for vBulletin 4.0.x only.

DO NOT INSTALL on vB 4.1.x or 4.2.x.

Even if it worked correctly, the effect is negligible as vB4 is nowhere near as terrible client-side speed-wise as it once was.

DO NOT ask for fixes, they will not come, I have moved to XenForo.



__________________________________________________ ______________


tl;dr - Significant frontend speed improvements for vBulletin 4

Don't forget to Mark as Installed if you use this mod, and a nomination for MOTM would be nice

__________________________________________________ ______________


Features:


CSS Optimiser: Minifies all CSS files and serves CSS directly, eliminating the PHP overhead from css.php.

Javascript Optimiser:
Intelligently defers Javascript loading (puts script tags just before </body> on the fly) and combines common Javascript files. Also features optional compression with Google Closure Compiler.

HTML Optimiser: Based on HELLCAT's Realtime Page Compressor, and adds complete whitespace removal around block and meta elements and removal of unimportant comments.

Attachment Optimiser: Intended for FastCGI users only - serves attachment thumbnails and images directly rather than through PHP.

All this is done efficiently and on-the-fly - no need for any template edits.

__________________________________________________ ______________


Installation:
  1. Ensure you have CSS stored on the filesystem and not your database. To check this, go to Settings > Options > Style & Language Settings > Store CSS Stylesheets as Files? and ensure it is set to "Yes".
  2. Disable Remote YUI if you have it enabled. To check this, go to Settings > Options > Server Settings and Optimization Options > Use Remote YUI and ensure it is set to "None".
  3. Upload the contents of vbsc.zip to your forum root directory via FTP.
  4. Ensure the files vbsc.js and vbsc.js.gz in /clientscript/ are writable (chmod).
  5. Install product-vbsc.xml as a Product. (Plugins & Products > Manage Products > Add/Import Product)
  6. Run Compress Javascript and Compress CSS under the vB4: SuperCharged Admin CP section.
  7. Check to ensure that all the settings are correct for your forum, as some of the optimisers are likely to conflict with other poorly coded mods, and not all are turned on by default (vB4: SuperCharged > Options).
__________________________________________________ ______________


Conflicts:
  • If you wish to run vBSEO along with the Attachment Optimiser, you must disable Attachment Rewrites under URL Rewrite Settings > Forum URLs. This incompatibility is by design.
  • If you run vBSEO's Cleanup HTML function, you should choose between it and vBSC's HTML Optimiser. Running both at once is a waste of resources and may create conflicts that would not otherwise exist.
__________________________________________________ ______________


Upgrading:
  1. Upload the contents of vbsc.zip to your forum root via FTP. (Overwrite the existing files.)
  2. Install the new product-vbsc.xml, ensuring you have Allow Overwrite set to Yes. (Plugins & Products > Manage Products > Add/Import Product)
  3. Run Compress Javascript and Compress CSS under the vB4: SuperCharged Admin CP section.
__________________________________________________ ______________


Changelog:


1.51:
  • A minor, optional update involving product-vbsc.xml only.
  • Fixed conflict between vBSC, vBSEO and certain language/template customisations which prevented the PM notifications from opening a new window when requested.
1.5:
  • Several changes made to various files - don't forget vbsc.zip when updating.
  • The Javascript Optimiser will now function properly without the Common Javascript Cache enabled, for those of you more concerned about download size than http requests
  • As I've found disabling the Common Javascript Cache can take 500ms off the rendering time in Firefox, it is no longer enabled by default.
  • Fixed Facebook Connect.
  • Fixed compatibility with certain types of Adsense ads
  • Fixed loadvBCss inline javascript calls being incorrectly left alone, screwing up nested CMS Sections among other things.
  • Fixed the removal of the space between "by" and the username in the last post column with the HTML optimiser enabled.
  • Restored modification date check on vbsc.js
1.4:
  • Several changes made to various files - don't forget vbsc.zip when updating.
  • Google Closure Compiler appears to be working again, so you can re-enable that.
  • Fixed error spam and even fatal errors when importing products, possibly at the expense of compatibility with YAFB, but who needs that now anyway?
  • Improved inline Javascript regexes, fixing several VSa mods, and probably others too.
  • Improved descriptions of some settings.
  • HTML Optimiser is no longer on by default (it's pretty resource heavy and pointless).
  • Fixed hard-coded /admincp/ reference in the CSS Auto-Compress hook.
1.3:
  • Several changes made to vbsc.php - don't forget vbsc.zip when updating.
  • Disable Google Closure Compiler if you have it enabled as it no longer works and I'm not sure why yet.
  • The CSS optimiser now overwrites the existing CSS files with the minified equivalents, reducing the amount of regex guesswork needed.
  • Fixed error appearing on the login page with the CSS optimiser enabled.
  • Tested with [AJAX] - Advanced Forum Statistics
1.2:
  • Changes made to various files - don't forget vbsc.zip when updating.
  • Added Advanced Attachment Optimiser for img tags (skips attachment.php altogether rather than simply adding a redirect) and improved the original one (designed to be run together).
  • The DIR constant is now used throughout vBSC.
  • Fixed style00000 bug on redirect pages - now defaults to style id 1.
  • Fixed strange bug in the CSS Optimiser where in some circumstances, css.php style URLs (with commas) would be used in direct links, breaking everything.
  • Removed a pretty pointless check on the modification date of vbsc.js (due to issues). You'd have to be an idiot not to run compress css/js after updating vBulletin :P
1.1:
  • Changes made to various files - don't forget vbsc.zip when updating.
  • No longer works on vBulletin 4.0.0 - supports 4.0.1 only.
  • Removed common css cache - vBulletin's new "-rollup" system only results in a couple of extra requests and less conflicts.
  • Added support for new LTR/RTL vbulletin_css folders to all elements of the CSS Optimiser.
  • Improved support for obscure ways of including CSS that some mods may use.
  • Fixed unnecessary errors when some Javascript files are not present.
  • The appropriate DIR constant is now used when including vbsc_global.php, hopefully fixing the invalid argument supplied for foreach() error.
  • Fixed bug in Compress Javascript for forum-only vBulletin - file_get_contents(./clientscript/).
  • Fixed CSS Optimiser incompatibility with Yay! Another Facebook Bridge, which for some reason breaks write_style_css_directory().
  • CSS Optimiser now uses write_style_css_directory() rather than the full build_style() function.
1.01:
  • Changes made to various files - don't forget vbsc.zip when updating.
  • Fixed compatibility with child styles.
  • Improved Javascript and CSS Optimiser error messages.
1.0:
  • Changes made to various files - don't forget vbsc.zip when updating.
  • Fixed bug in the Javascript Optimiser where the type attribute was required on a script tag - some mods leave this out or put it after src.
  • The monolithic vbsc.js file is now optional, although enabled by default (under the setting Common Javascript Cache). Many people's problems seem to be related to it, and there isn't much difference without it, as long as the loading deferral is still there.
  • The CSS files showthread.css, postbit-lite.css, postbit.css and forumdisplay.css are no longer included in the common CSS cache. This fixes a conflict with Abe1's Post Thank You Hack, along with other incompatibilities. The vBSC CSS hacks that were necessary due to conflicting rules in these files have also been removed.
  • The CSS Files and JS Files settings, along with some other things, have been moved to includes/vbsc_global.php. Due to this, uninstalling before upgrading is no longer strictly necessary.
  • Greatly improved the details given by the Javascript Optimiser fallback warning and steps to take to get it to disappear for people having issues.
  • Fixed compatibility with the Forum-only version of vBulletin.
  • Added some Blog files to the common Javascript cache.
  • vBSC will now detect if you have the CMS or Blog products disabled and skip caching their Javascript files as necessary.
  • Improved descriptions of admin settings.
0.92:
  • Fixed bug in the JS Optimiser causing bits of HTML comments to be visible at the bottom of the page under certain circumstances.
  • Worked around a stupid bug in Latest Posts and Newest Members on Forum Home which somehow doesn't occur during normal operation and only when the HTML is messed with by the HTML optimiser. In other words, not my fault
0.91:
  • Fixed(?) rare issue where reCaptcha would fail to appear with JS Optimiser enabled.
0.9:
  • Changes made to vbsc.php - don't forget vbsc.zip when updating.
  • Added "vbseo" to the inline Javascript whitelist.
  • Fixed compatibility with ibProArcade and any other mods which utilise the css_start hook to add additional CSS.
  • Fixed message about Compress CSS always appearing on certain CMS pages. If the styleid from cms_node is not found, it defaults silently to the board default style, just as vBulletin itself does.
  • Fixed compatibility with Flashchat 6 Integration and any other mod which uses shorthand css.php URLs.
  • Fixed display of topic review with the CSS optimiser enabled.
  • Fixed lack of spaces between usernames in various places.
0.82:
  • Fixed specific issue where the domain name was included before the YUI reset-fonts.css url, causing it to end up included after vbsc.css and screw things up.
0.81:
  • Fixed CSS optimiser not supporting style IDs of > 9.
  • Fixed CSS optimiser not working on some redirection pages, especially after login.
0.8:
  • Changes made to vbsc.php - don't forget vbsc.zip when updating.
  • Added warning if CSS and/or Javascript are not cached correctly, and it now falls back to the normal CSS/JS rather than messing everything up if they aren't.
  • Fixed user style selection not being considered with the CSS Optimiser enabled.
  • Compress CSS now grabs the styles from the database and performs the equivalent rebuilding process to saving a stylevar automatically. This is likely to fix a lot of people's issues
  • Added a whitelist of various vB-related terms to the inline Javascript optimiser, hopefully fixing issues with Google Custom Search and ad providers other than Google (which was previously blacklisted).
  • Fixed broken posting permissions box on newthread/postreply with the CSS Optimiser enabled.
  • Fixed automatic CSS compression 404'ing when running the vB upgrade script.
  • Completely changed how automatic CSS compression is run, resulting in a smoother experience free of iframes. It also only runs once regardless of how many styles you have.
  • Fixed incompatibility with BBR - Resize Images with lytebox, and probably other mods.
  • Tested compatibility with GCBOS 0.6.10.
0.7:
  • Changes made to vbsc.php - don't forget vbsc.zip when updating.
  • Fixed CMS sections widget not working with JS Optimiser enabled. The fix for this will probably also fix other YUI-related issues.
  • Fixed visitor messages being too wide with CSS Optimiser enabled.
0.6:
  • Several changes made to vbsc.php - don't forget vbsc.zip when updating.
  • Added a number of additional Javascript and CSS files - please uninstall vBSC before installing 0.6.
  • Compress JS now makes a small modification to the actual code to workaround a bug which can break a lot of things (most notably inlinemod) and generally screw things up.
  • Fixed links to compressed code in the admin cp.
  • Fixed /clientscript/ -> clientscript/ in the JS optimiser.
  • Closure Compiler is now optional, and defaults to off because it really provides little gain other than download size and takes ages to run. Standard JSMin is now the default form of compression.
  • Added error messages for both compressors.
  • Fixed vbulletin_textedit.js not being filtered out properly due to nearby HTML comments.
  • Tested compatibility with GCBOS and additional_css mods.
0.5:
  • Fixed any prefix to css.php not being removed properly and being displayed as text in the header.
0.4:
  • Fixed references to /clientscript/ instead of clientscript/, which broke support for forums not running in the root of a domain.
  • Fixed incompatibility with new css.php URLs in RC2.
  • Fixed conditional comments around IE Javascript being removed.
  • Fixed weird inlinemod issue.
  • Added popuplist.css - please uninstall before upgrading or add this to your CSS Files list manually.
  • Fixed incompatibility with Google Adsense. Fixes for other ad providers and other inline Javascript will be added on request.
0.3:
  • Added HTML Optimiser
  • Fixed @charset spam in vbsc.css
  • Fixed vbsc_ files not being used due to a regression during release.
  • cpnav_vbsc.xml was accidentally left out in 0.2 :P
  • CSS is now automatically compressed when the files are updated through the StyleVar system, or otherwise. This also fixes the random deletion of vbsc.css and other vbsc_ css files.
0.2:
  • Added JS optimiser
__________________________________________________ ______________

ONLY if you wish to use the Attachment Optimiser, something similar to this is needed in your server config (nginx):

Code:
location /customattachments {
   if ($request_uri ~* \.(png)) {
       add_header Content-Type image/png;
   }
   if ($request_uri ~* \.(jpg|jpeg)) {
       add_header Content-Type image/jpeg;
   }
   if ($request_uri ~* \.(gif)) {
       add_header Content-Type image/gif;
   }
}
(although some browsers will probably be happy enough without these headers)

Download Now

File Type: xml product-vbsc.xml (32.5 KB, 2052 views)
File Type: zip vbsc.zip (26.6 KB, 2633 views)

Screenshots

File Type: png SLA.png (65.1 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
2 благодарности(ей) от:
millardjb, xrvel

Comments
  #2  
Old 12-06-2009, 04:47 AM
Brandon Sheley's Avatar
Brandon Sheley Brandon Sheley is offline
 
Join Date: Mar 2005
Location: Google Kansas
Posts: 4,678
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I like anything with "optimizer" in the title
Reply With Quote
  #3  
Old 12-06-2009, 02:01 PM
SİMAR's Avatar
SİMAR SİMAR is offline
 
Join Date: Jun 2009
Location: Germany~Offenburg
Posts: 270
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks
Reply With Quote
  #4  
Old 12-07-2009, 01:42 AM
AzzidReign's Avatar
AzzidReign AzzidReign is offline
 
Join Date: Apr 2006
Posts: 497
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'll be installing this when vb4 goes gold
Reply With Quote
  #5  
Old 12-08-2009, 05:30 PM
Tom Kagan Tom Kagan is offline
 
Join Date: Jan 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

While this does eliminate the execution of the php code which generates the correct stylesheet sets, I can't see how this improves the user experience. The number of individual http requests is greatly expanded. This goes against a rule of thumb for web design "best practices".
Reply With Quote
  #6  
Old 12-08-2009, 06:09 PM
Darkimmortal Darkimmortal is offline
 
Join Date: Apr 2009
Posts: 163
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Say you've got 3 FastCGI processes and 5 stylesheets included via css.php. Assuming none of those FastCGI processes are busy handling requests, it will take theoretically as much as twice as long for anything to render, and from a load perspective, one user will become six (not counting cache)

I'll be adding concatenation shortly for both CSS and Javascript soon
Reply With Quote
  #7  
Old 12-09-2009, 10:16 AM
abdobasha2004's Avatar
abdobasha2004 abdobasha2004 is offline
 
Join Date: Aug 2008
Posts: 541
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does this work for vb 3.7?
Reply With Quote
  #8  
Old 12-09-2009, 11:56 AM
Tom Kagan Tom Kagan is offline
 
Join Date: Jan 2008
Posts: 18
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's already designed to concatenate the css. I know you'll stop using the FastCGI, but big deal - studies show the bigger problem for the user is the latency involved with multiple HTTP requests. I can only see this as "optimzation" if your server sucks and you care more about the server load stats than the latency of the user experience. Besides, since the css is essentially static, set your "expires" header properly on css output and a pageload will only hit the server once with the original code.
Reply With Quote
  #9  
Old 12-09-2009, 01:59 PM
Darkimmortal Darkimmortal is offline
 
Join Date: Apr 2009
Posts: 163
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hugely improved version coming in a few hours

Also, multiple http requests = bad, multiple http requests where at least one can't complete until the others do = worse. It's not the server I'm concerned about
Reply With Quote
  #10  
Old 12-10-2009, 12:49 AM
Darkimmortal Darkimmortal is offline
 
Join Date: Apr 2009
Posts: 163
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Annnnd... done

Feels good to have pages loading in a fraction of a second and being immediately responsive

And ~2 second loads from an unprimed cache.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:51 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05245 seconds
  • Memory Usage 2,353KB
  • Queries Executed 24 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (10)post_thanks_box
  • (2)post_thanks_box_bit
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (3)postbit_attachment
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete