I'm developing a site that will have the users develop custom avatars based on skin color, eye style, eye color, hair style and color, etc...

I need it to be as universally accessible as possible, and can program in C#, may or may not use AJAX, and can use client side JavaScript. I do not want to use any Flash. Here are my thoughts/problems so far.

1) I can draw white images and tint them with HTML5's canvas.
PRO's: I'll only need to load maybe two dozen images.
CON's: Internet Explorer doesn't support canvas natively yet. Otherwise, this would be the solution

2) I can use Ajax to do the same thing. I've already done it in a standalone program and it works great.
Pro's: It's universally viewable. No client side code to worry about
Con's: I don't like the delay on the client side. When clicking a new style/color, there will always be some delay. If many users view the site, it may be a strain on the server custom tinting tons of images.

3) I can use vanilla Javascript to do the whole darn thing
Pro's: It'll work.
Con's: Either I have to cache a HUGE library of images, or the user will just have to wait for a new image to load with each new selection. Very inefficient.

What do you think?