This is a question I get often from “techies” when I refer to mojax as a Moblie AJAX application framework. There is much confusion about this point, enough so that I think it deserves discussion.
First off (for those reading that are new to the concept) AJAX is an acronym that stands for Asynchronous Javascript and XML and was coined by Jesse James Garrett to describe the use of client-side Javascript to create a rich user experience that rivals a desktop application but deployed within a browser. The power of an AJAX application over traditional software development is the fact that the code is relatively portable across operating systems, versioned and distributed from a central location, and authored in a high-level scripting language.
True AJAX support within all mobile browsers is a myth.
Mobile AJAX is what it sounds like, the use of AJAX concepts within a browser running on a mobile device. Companies like Opera, Mozilla, Nokia, and Access have all developed and deployed browsers capable of running an AJAX enabled web site … but these browsers only run on a handful of devices. True AJAX support within all mobile browsers is a myth. The leader in AJAX enabled browsers (IMHO) is Opera Moble by Opera. Opera Mobile however only runs on Series 60 and some Windows Mobile devices. Their Opera Mini product, which runs on most J2ME devices, is nothing like Opera Mobile and doesn’t support AJAX.
mojax is not a browser
mojax, conversely, is one of the worlds first Mobile AJAX Application Frameworks. Unlike traditional AJAX Web Frameworks, mojax Moblets do not run within a browser and are not subject to the availability and quality of a network connection. Also, unlike a web application running on a mobile device, a mojax moblet has access to lower level device features such as Camera API, Push Messaging, Bluetooth, Location Services, Contacts and more. mojax enables an AJAX savvy developer to produce an true mobile application that will run on most J2ME, Symbian, Windows Mobile, Palm, and BREW devices without any need to port or test across the devices they wish to deploy.
Moblets are applications … not web sites
In fact, because mojax runs as an application and not a website, an mojax Moblet offers distinct advantages over a Mobile AJAX application running within a browser:
1. Local Data Storage (Caching)
All Moblets have access to a global object called Cache. Via this object, Moblets can persist state across application sessions. It can be used to store simple string values, large XML data models, or even images.
2. Offline capabilities
Unlike a browser based application, Moblets can be written to work offline. All the application logic is cached upon install and unless the application requires access to an internet resource (e.g. Web Service) then it is fully capable of running offline and without a network connection of any kind.
3. Access to device specific features
Browsers running on a mobile device are strickly limited to rendering a web page. Granted, in concept AJAX provides a very rich experience, but it doesn’t provide access to device specific features like Audio and Video playback, camera, LBS, and Bluetooth. These are all things that a Moblet running on mojax can access.