I'm working with the webmaster of www.hogbaysoftware.com to solve this problem - I'd appreciate your help.
While in the forum (i.e. module.forum), every time I hit 'back' or 'forward' in my browser to move between the forum listing and a page/node, the browser contacts the server each time. The same applies to links that I've already clicked on, haven't changed, and should be cached. Not only is this unnecessary, but it slows me down considerably. All of this pounding on the server must degrade performance too. I've tried disabling the "Who's online" block (thinking it would want to stay up-to-date with each page load, but that didn't help.) Compare this behavior to, say, NYTimes.com, where if I read an article and hit 'back' I go right back to the front page without having to wait to contact the server, etc.
The forum site in question is http://www.hogbaysoftware.com/forum -- it appears to be the same on drupal.org's forum too.
I'm using Firefox/Camino on Mac OS X 10.4.7. This doesn't affect users of Safari.
I've searched the forums for answers but couldn't find any good ones. I saw the following:
"... there are different levels of caching. However, Drupal does have 'page caching' where the caching unit is an entire page. If you enable page caching, it only takes 2 queries to serve a cached page. Page caching only works for anonymous users. We can't serve cached pages to registered users, as these pages are typically personalized. In that case, we try to take advantage of block caching, menu caching, etc."
http://drupal.org/node/40355#comment-74482
"You can enable page caching from the settings page at ?q=admin/settings. It's available in Drupal 4.6, but it has been extended in Drupal 4.7. Drupal 4.7 has 'loose caching' which allows you to cache more aggressively. Loose caching is especially interesting for large or active Drupal sites whose page cache is otherwise flushed too frequently.
You're right about the module thing; Drupal core can't figure out what is cacheable, and what is not cacheable. It is the module developer's responsibility to take advantage of the available cache infrastructure. The cache APIs are documented in the developer documentation."
http://drupal.org/node/40355#comment-74502
But the webmaster read this and said:
"Anyway I'm really not sure about how best to handle these issues (page reload when going back). My general thinking is that I don't know all that much about web protocols, and I figure the drupal people must know more and have a reason for the way that things work. Right now I'm updated to the latest version of drupal. Page cache is enabled in the settings. I don't see any option for "loose caching" so maybe that's only at the code level and not a user preference."
If anyone has any hints, I'd greatly appreciate it.
Comments
Yes, I agree. Even
Yes, I agree. Even navigating drupal.org this issue can be seen. Moving back to the frontpage after reading an article takes as long as the first load (at least it appears to).
I have heard of the large filecaching patch, but it has never worked its way into the 4.7.x distribution, and I am not comfortable using HEAD on a production site.
Scroll location is lost too
I don't think we'd be comfortable with that either, so I hope it moves into the main distribution.
I forgot to mention one other major down side to this: When you move 'back' to the last page, you lose your scroll location -- the reload moves you back up to the very top. Forum listings and postings tend to be very long, so losing one's spot is quite a pain.
So in the meantime, I wonder if there's any sort of Firefox extension that would force the browser to use cache, except when forcing a reload.
Edit: I just saw this thread http://drupal.org/node/79224 this thread on the issue - looks like the developers are hot on the trail of the problem -- assuming it's related:
"We've got to improve non-cached performance if Drupal wants to remain competative [sic].
(because its easier for other products to improve their caching and catch up on the front).
So where do we start? What does the code profile look like? Where are the bottlenecks?"