Status
Not open for further replies.

Jnifoo

Customer
Hi,
Using vB Optimise Pro 2.3.0 since yesterday, on our Forum powered by vBulletin 4.0.5, I encountered a problem with the way Guest Full Caching works. A that time, I have found no solution to resolve it myself, so here is the facts.
First, notice that I use the following plugins : vBSEO 3.5.1, EveryWhere Sidebar 1.3.3, vB4: SuperCharged 1.51.

When using IE6, vB disable completely the sidebar (no html/css/js code in the page generated). I test this fact under my forum and under vbulletin.com/forum.
When using any other browser, vB activate the sidebar functionality (html/css/js code are in the page generated)

I don't know if the vB team has used this bad trick for other functionalities, but anyway, if you enable the Guest Full Caching functionality of vB Optimise Pro, the problem occurs when IE6 is the first guest browser to load a page (let say the homepage again, so it prove that the plugin 'everywhere sidebar' is not in cause), it will load it without any sidebar on the page.
Then, any other browser will benefit of the caching system and voila, no sidebar (with a sidebar needed on all the pages for ads, I think you understand immediately the difficulty of monetizing the forum).
The counterparts is : if any other browser than IE6 load the page in the first place, then IE6 will render the page with the really buggy sidebar.

So, the questions are :
1) is there any solution to disable Guest Full Caching for IE6 only (and then, as my Forum receives less than 10% of visites using IE6, I could benefit of the functionality, for the 88% other visitors and the spiders).
This solution seems to me the better than doubling each page for Guest Caching distinction of IE6 and none IE6 will be a non sense for a big forum.

2) is there any idea of how to disable the really bad trick used by the vB team to disable the sidebar functionality under IE6 (cause a simple css 'display: none' with a corrected alignment of the rest of the content works) ?
So the full html/css/js code needed for the sidebar to work will be a zero problem for the Guest Full Caching to work properly.

Last but no least, I know that I could get a different approach and disable the sidebar, and place another ad format on my forum to, then the Guest Full Caching will probably work just fine.

Waiting for your support, as the 1st solution should be just enough for me, even if I also should report this problem as a bug to the vB Team.
 
Last edited:
I'll let Deceptor answer this fully, but i know that vb4supercharged has known issues with JS etc. Have you tried disabling it and seeing if the problem remains?
 
Just tested it, but anyway, this isn't the problem of vb4 supercharge, in my opinion, cause enabled fully, partially or disabled, the problem is vbulletin way of disabling the buggy sidebar under IE6. There is simply no html/js/css code in the page when you use IE6. And with any other browser, there is !.
 
Hi Jnifoo,

I wasn't aware they disabled the sidebar for IE6, this does create a problem as we assume all guest content is the same so it's safe to be cached. The system does work through unique keys though and the best resolution I can think of is adding a new part to that key: "Is IE6? Yes/No". With this cached pages within IE6 will only serve to IE6 guests and every other browser will use the non-IE6 cached pages.

I've just jumped online so I'll get to work on this right away, I'll post in this thread when I have an update - shouldn't be long :)
 
This seems to be a good solution if the vb team use this kind of trick for other things.
- The counterpart, if vb optimise cached two version of the pages : you double potentially the memory consumed by the cache for guest (so just need more memory)
- The good part is that we use a cache for every situation !

Let me know when you have a fix, so I could beta test it for you.
 
Well here's my proposed changed, but I haven't tested yet as I'm just downloading an application to let me use IE6 (I'm on Windows 7). If you open ./vboptimise/core/class_vboptimise.php and find:
Code:
		if (!$key)
		{
			$key = md5(implode('', @array_merge(array(
				THIS_SCRIPT,
				$_COOKIE[COOKIE_PREFIX . 'userstyleid'],
				$_COOKIE[COOKIE_PREFIX . 'languageid'],
				$vbulletin->options['styleid'],
			), $_REQUEST)));
		}
Replace this with:
Code:
		if (!$key)
		{
			$key = md5(implode('', @array_merge(array(
				THIS_SCRIPT,
				$_COOKIE[COOKIE_PREFIX . 'userstyleid'],
				$_COOKIE[COOKIE_PREFIX . 'languageid'],
				$vbulletin->options['styleid'],
				((is_browser('ie') AND !is_browser('ie', 7)) ? 'ie6' : 'other'),
			), $_REQUEST)));
		}

As you mentioned it will increase memory due to differentiating between IE6/everything else but vB Optimise does have the global ttl setting defaulted at 1 hour (which you can adjust) so it shouldn't make a large impact.
 
Confirmed this works, I'll apply it to the v2.3.0 package and v3.0.0 beta :) You can either make the edit manually or re-download the package and re-upload ./vboptimise/core/class_vboptimise.php.

Let me know if you have any further questions :)
 
This seems to work definitely as I needed to, simple and quick fix, what can I say... Good Job !

Perhaps this special debugging functionality could get an option in the control panel in the futur v3 of vb optimise pro.
As it will consume more memory, and as not everyone is using the sidebar, it could help an admin of forum fine tune vb optimise pro.

Thanks for this great support.
I will monitor my cache memory to check if I need to raise it more.
 
Status
Not open for further replies.
Top