views:

141

answers:

6

I'm trying to put a workable plan together for a charity that could really make good use of a forum and a wiki, but a crucial part of its operations happen in parts of the world where dial-up connection dominates and probably will continue to do so for the foreseeable future.

This site was recommended as one that behaves well even on a dial-up connection, so I thought I'd ask for some help here!

The site I want to hook this on to is using Drupal. Anyone out there with experiences like this who could maybe help?

A: 

You should be able to accomplish this, but to be honest you are going to loose a lot in the way of user experience by creating a dial-up friendly site. It basically means you have to do the following to optimize for the experience:

  1. Keep JS to a minimum
  2. Make sure the JS is minified.
  3. Reduce large image requirements w/ CSS and some optimal planning of layout
  4. Make sure caching is enabled in the headers so that new files only get downloaded when nessisary.

If you do all this, you should have a site that is acceptable on dialup.

Nick Berardi
1. on the contrary. a page full of JS that uses AJAX for small partial rendering and a lot of client side logic might remove the pressure from the bandwidth. considering that browsers cache js files and the reuse them across pages.
AZ
Have you seen the size of some of the JS Frameworks today? Plus, chances are if they are using Dial-Up they have also not upgraded their browser from IE6 if they are using XP.
Nick Berardi
It really depends. However, the OP is highly unlikely to need JS for what they're trying to accomplish.
Bob Aman
+3  A: 

Behaving well on dial-up involves sitting down and optimizing your HTML, CSS, and images to be as small as possible, and then ensuring that your server is sending sane HTTP headers for caching. Make sure your CSS stylesheet is external, and shared across all pages. If dial-up is a major issue, you'll want to stick to a single stylesheet if possible. Avoid JavaScript, because those computers usually don't have the processing power for it either. If you must use JavaScript, jQuery is extremely small and very fast and highly recommended, but I suspect that for most content-oriented websites, it won't be necessary.

To be honest, if you produce valid XHTML/HTML5, valid CSS, and you follow all of the usual best practices for standards-based web design (no table layouts, semantic markup, etc), dial-up really won't be an issue. It'll just work.

Bob Aman
+1  A: 

To tweak the maximum performance out of your site you might want to install this and use it on your site when you are done with the initial development- ySlow - this will analyse your pages and highlight all the areas you can improve. It's really a great tool for optimising site download speeds.

Steve Willcock
A: 

There are already some hints on how to keep page sizes and load times down.

To complement this, you could use a software that simulates limited bandwith. This helps you test the speed of your site on dialup.

There are several available (just google "simulate dialup"). Sloppy e.g. seems quite usable.

sleske
A: 

You could also do what Google does for Gmail, i.e. provide 2 versions of your view, one for slow connections that uses plain old HTML, and one for faster connections. You could make the default one the slow one, but provide a link to enable the faster one.

Gmail also has a built-in mechanism that detects when you load the page whether it's going fast or not and will automatically revert to the plain HTML view if it's too slow, which is another fancier alternative.

JRL
A: 

Your main goal should be minimum page size (keep only HTML in pages, all styling information should be externalized in css files for caching, same for JavaScript in js files) and minimum round trips to server (full requests and post backs). Contrary to popular belief a JS heavy site could work like a charm if you perform a lot of heavy duty client side and keep the server roundtrips clean with the minimum amount of data needed (think JQuery and AJAX here with small partial renderings).

P.S. If u'r using .NET throw ViewState away.

AZ