Online Learning & Development Centre & AJAX
I recently built a web application to create interactive online learning exams for Independent Financial Advisers. The application was entitled the Online Learning & Development Centre.
About The Application
The application features a customisable administration section where you can add questions, answers and categories. You can then create exams dynamically based upon however many questions you would like an exam to be comprised from. The online learning front end of the website allows you to select an exam and answer questions with 4 possible answers. Your results are saved, and your progress can be monitored by your colleagues, plus you will receive details of you pass scores for the exam as a whole, and for individual categories that the questions are taken from.
In a very clean and simple format you can log in and take a timed exam and receive your results immediately.
A Question
As with most application’s I build, there usually comes a time when you need to display some information in a grid (generally in administration suites), which throws up various problems each time. What do I do for functionality such as paging, searching, how many records do I display per page, how user friendly is this grid, and more importantly (from a developers perspective) how long will it take the page to load each time it needs to go back to the server and bring back records.
After having developed many web based applications I have invariably stuck with previous libraries of code I, or our development team, have written rather than try to re-invent the wheel. But what do you do when the wheel has become rusty and unreliable? What if someone has already developed a new wheel which is rounder and shinier than your own?
Ajax has re-invented such a wheel.
An Answer
Ajax is a group of technologies which relies on, among other things, an existing programming language; JavaScript. It revolutionises the way applications are built by giving users a similar experience to using a desktop application. No page refreshes are required to sort and filter data, or to save and update data.
I successfully incorporated an Ajax grid into my Online Learning & Development Centre and extended it to include real-time filters for searching on columns and batch management of questions. I’m already working on a highly enhanced version of it for an existing collaborative application.
But the most important aspect of it was that the users found it really easy to use. And this is the key to Ajax; User Experience.
My Thoughts
There are many things Ajax can do, but I am a firm believer in not using technology for technologies sake; the right tool for the right job. I used an Ajax grid on the Online Learning & Development Centre as it fulfilled my requirements of being able to manage large numbers of data quickly and effectively, and the scope of the project allowed me to spend additional development time learning and researching.
There are lots of Ajax resources on the internet, but even highly developed and streamlined code libraries and frameworks require you to learn an awful lot, and my JavaScript skills have increased ten-fold since I began this project.
Remember, there is a downside to Ajax, and that is that without JavaScript enabled you will not be able to use it, so ensure that this fits suitably into any specification at the outset of a project. This isn’t really a problem for the Online Learning & Development Centre I built as it was specified that it would require JavaScript, and the application has suitable logic to explain in detail to users who do not have JavaScript enabled how they may resolve this.
As more businesses choose to take their businesses and services and even their software online, centralising system and removing the reliance on locally installed applications, it would appear Ajax may just be the future of web development, giving a desktop feel to a web application. Just as long as you don’t work at a company that operates IE 3.0 with JavaScript disabled.

There are no comments for this entry.
[Add Comment]