views:

224

answers:

6

I am charged with designing a web application that displays very large geographical data. And one of the requirements is that it should be optimized so the PC still on dial-ups common in the suburbs of my country could use it as well.

Now I am permitted to use Flash and/or Silverlight if that will help with the limited development time and user experience.

The heavy part of the geographical data are chunked into tiles and loaded like map tiles in Google Maps but that means I need a lot of HTTP requests.

Should I go with just javascript + HTML? Would I end up with a faster application regarding Flash/Silverlight? Since I can do some complex algorithm on those 2 tech (like DeepZoom). Deploying desktop app though, is out of the question since we don't have that much maintenance funds.

It just needs to be fast... really fast..

p.s. faster is in the sense of "download faster"

+1  A: 

I don't think you'll find Flash or Silverlight is going to help too much for this application. Either way you're going to be utilizing tiled images and the images are going to be the same size in both scenarios. Using Flash or Silverlight may allow you to add some neat animations to the application but anything you gain here will be additional overhead for your clients on dialup connections. I'd stick with plain Javascript/HTML.

pix0r
+2  A: 

Is something like Gears acceptable. This will let you store data locally to limit re-requests.

I would also stay away from flash and silverlight and go straight to javascript/AJAX. JQuery is a ton-O-fun.

jms
+2  A: 

I would suggest you look into Silverlight and DeepZoom

Ryan Rinaldi
A: 

I believe Microsoft's Seadragon is your answer. However, I am not sure if that is available to developers.

It looks like some of it has found its way into Silverlight

Vaibhav
A: 

aha looked into DeepZoom and that'd be a good candidate

but havn't thought about Gears and Seadragon before... have to check it out.

Thanks!

chakrit
+1  A: 

You may also want to look at asynchronously downloading your tiles via one of the Ajax libraries available. Let's say your user can view 9 tiles at a time and scroll/zoom. Download those 9 tiles they can see plus whatever is needed to handle the zoom for those tiles on the first load; then you'll need to play around with caching strategies for prefetching other information asynchronously.

At one place I worked a rules engine was taking a bit too long to return a result so they opted to present the user with a "confirm this" screen. The few seconds it took the users to review and click next was more than enough time to return the results. It made the app look lightening fast to the user when in reality it took a bit longer. You have to remember, user perception of performance is just as important in some cases as the actual performance.

Chuck