I'm not sure the title is the best possible, but I can't think of something perfectly descriptive. Here is my scenario.
I have to build a web portal which will employ all the "bells and whistles" offered by ajax and Javascript, while still accessible and functional to users who may not have Javascript, and/or are using legacy systems. As I see it I have two paths I can take.
"Progressive Enhan开发者_运维问答cement": with this approach we'll have one set of markup, it will serve as a fully functional classic html portal. The clientside library will then enhance the existing markup to override html functionality and supersede it with the advanced Javascript functionality.
The second idea is to have two client libraries, one for the Javascript enabled portal, and one for the classic HTML.
There are pros and cons that I see.
The first scenario keeps a smaller footprint for maintainability. We have one set of markup, there are no duplications or synchronization issues. The negatives I see here are the code can get muddled having to do double duty, and can be more easily corrupted.
The second scenario is good in that each portal aspect can be optimized to its needs. Obviously maintaining two sets of code will bring plenty of maintenance issues.
I am currently leaning towards scenario 1, but scenario 2 has some positives I like, such as ease of adding a third option. Frankly I'm torn between the two possibilities as both are viable. Which scenario makes the most sense?
Progressive enhancement shoould be the way to go here, but it's a fairly new concept. It really depends on your users' preferences. If the majority (or a large share) is expected to use lots of different mobile phones - I'd recommend progressive enhancement with a library for that. Have look at jQuery Mobile as it is quite promissing and will soon be released.
The second idea is worth it only if major functionalities or advantages of the app require javascript. Then creating a low-end front-end (:P) for some users seems reasonable. Gmail is a good example. Its features are dependant on JS and it wouldn't be anything interesting without them, so there's a poor version also that works well even in lynx.
精彩评论