Channels ▼

Open Source

Mojax: Mobile Ajax Framework

Source Code Accompanies This Article. Download It Now.

Data Persistence

The Cache is a globally accessible object that provides a means to persist data across invocations of a mobile application. The Cache object is a collection of properties, stored as name-values pairs. Properties of the Cache are set and retrieved using dot notation:

Cache.address = "2114 Bigelow Ave";

The Cache is limited by available storage space on the device, so it's important to be judicious in deciding what to cache. Also, caching is on a per moblet basis; that is, each moblet has its own Cache so there are no worries about one moblet overwriting another's cached content.

Preloading and Caching

Mojax can preload images during application startup via the <resource> tag:

<resource url="Images/zillow.gif" 

The persist property is optional in the <resource> tag. However, the advantage of setting persist to true is that once the image is downloaded, it is stored on the device; thus, on startup of the application next time around, the image is available.


Given the nature of mobile devices and their ability to communication over the air, many Mojax applications access remote resources. The <httprequest> tag is for content types accessible via HTTP. Listing Four (available online) presents the httprequest for the sample application. The url property is set to match the format for calling the Zillow property details API. The async property is set to true, enabling the request to be completed in the background.

I apply an XSLT filter (Listing Five; available online) to the XML response to tailor the data specifically for the application. A side-effect of using the filter is reducing network traffic to only the information needed, thus improving application performance.

The bulk of the interesting code regarding the HTTP request is inside the <method> tag onLoaded, which is called once the request has completed. The response from the HTTP request is used to create two XPath expressions for accessing the returned XML.

For completeness, it's important to note that Mojax currently supports XML, JSON, images, and Mojax script as the supported data types through an HTTP request.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.