Finally, we live at an age where even a beginner web developer finds it embarrassing to use table layout for sitebuilding. Tables are very good what they created for: displaying arrays of data. You can style, script, enhance them in many ways.
I often have to hack into CMS systems functionality to make them customized for the clients and requests can be sometimes tricky to do, but I think there is always a simple solution. These clients usually use WYSIWYG editors to manage their pages, but I can't expect that they know XHTML or JSON to manage fancy widgets.
This was the case last time, when I needed to add a tabbed JS widget to a Drupal website. I came up with the idea, that tables can be used for describing data, nothing more and after processing the cells data, the whole table can simply be replaced with the markup for the widget.
This is a dirty hack I know, but at least the users can cope with it. It worked pretty well, the first column is the tab's name and the second column is its contents. There is a valid table attribute "summary" that is suitable for triggering the conversion, the user only have to enter "tabs" to it and the script does the rest.
It is not a problem if the javascript is turned off, because the data is still accessible and it can still be formatted with CSS to make it look pretty.
I'm a big fan of separating the business logic and the presentation layer. This can be easily done by PHP, ROR, Java, etc. but when you try to do it in JavaScript it's not obvious how to do it, or which is the best way.
I've researched a lot on the topic and found two schools that is used by JS template libraries:
- Template language parsing
- Procedural approach
Both are great ways to generate, it only depends on your needs.
Here are some projects worth noting:
This is a big WOW for the developers: nice, elegant, clean animated graphs on the canvas tag. Check it out now.
Some features: Multiple built-in data display options, smooth animations, crossbrowser, open source, library free, feeds from JSON...
All rights reserved, ©2008-2010 - Built on CodeIgniter framework - Konami codes - Mostly Valid XHTML 1.1 - Valid CSS 2.1