Skip to main content

Jquery Mobile - Single Page Structure

    We have been introduced to Jquery Mobile and have also seen some of the key features of the rich web framework in the previous posts. Today we will take a look at a general page structure using Jquery Mobile. So be ready to start off programming using Jquery Mobile.

    The Jquery Mobile page structure is optimized to support a single page or local, internally linked multiple pages. What does this mean? Well, single page architecture means, having multiple pages that are linked to each other using the normal process of using the anchor tag. So, each page will have its own header, content and footer. The multiple page structure is basically having multiple pages in one single page within different DIVs. So each page becomes a DIV which is linked to another page using an id for that particular page DIV.

    The multiple page architecture, though available is not popularly used because it results in a performance issue. The DOM becomes heavy as multiple pages load at the same time and the website becomes sloppy for the user. The multiple page architecture can be used for websites which are only content based with just 4-5 pages in it. However, for a decent enough website or an application, using the single page architecture makes more sense.

    If the above 2 paragraphs have not made any sense to you, do not get discouraged, take a look at the following to examples, and things will become much more clear.

Example #1:
    The following example shows a general structure of a page using Jquery Mobile. Take a look at the example, the code the result and I will explain the components of the code in further detail.



    You must have already taken a look at the example above. Let's begin with the important parts of the code first.
  • The HTML5 doctype - The HTML5 doctype has to be used to extract the maximum out of this framework. Any device with a browser that does not understand the HTML5 doctype ignores the doctype and custom Jquery Mobile attributes.
  • The viewport meta tag - The viewport meta tag tells the browser how the page zoom levels and dimensions are to be displayed. By setting the viewport attributes to content="width=device-width, initial-scale=1", the width will be set to the pixel width of the device screen. Now here, we are faced with an obvious question?
    • What happens if the viewport meta tag is not included?
      • In one line; your page would look bad. If the meta tag isn't set, many mobile browsers will use a "virtual" page width around 900 pixels to make it work well with existing desktop sites but the screens may look zoomed out and too wide.
    • However, there is a problem with the usage of this meta tag. The page still can be zoomed, and though Jquery Mobile says its a feature, many a times it is not desirable. To restrict the zooming of the browser, we need to use a more better and refined meta tag, the details of which you will find in this post.
  • Links to Jquery Mobile style-sheet and javascript files and the jquery javascript file.
    Let's come to the body of the code. You would have observed a few things like "data-role=page", "data-role=header", "data-role=content" and "data-role=footer". Inside the  tag, each view or "page" on the mobile device is identified with an element (usually a div) with the data-role="page" attribute. Although the page structure outlined above is a recommended approach for a standard web app built with jQuery Mobile, the framework is very flexible with document structure. The page, header, content, and footer data-role elements are optional and are mostly helpful for providing some basic formatting and structure.

UPDATE: The following example makes use of the next stable version of Jquery Mobile 1.3.1


    Here, we conclude our today's discussion on the Jquery Mobile Single Page structure. We would discuss the Multi-page structure in the further post. Including the multi-page structure in this post would make the post really lengthy and hence we will discuss this in the next post. Do let me know, if you have followed the post and also if you haven't, of any mistakes that you would have come across in this post.

    Hope you enjoy coding using Jquery Mobile and share this post if you have liked it. You can also follow the blog on Facebook by liking the Spatial Unlimited page.

Recommended for You

ES6 101 - Spread operator

ES6 101 - Spread Operator
Welcome to the fourth post in the ES6 101 series and the topic of discussion today is the Spread operator or the dot dot dot operator.... It is not very common to call it the “dot dot dot” operator, but I just kind of like the ring to it! Also when you say “dot dot dot” it actually helps me visualize unpacking multiple gifts from a gift box. Wondering why I am taking about gifts and gift boxes and “dot dot dot”. Well, the spread operator... is actually more like unwrapping gifts from a gift box. The spread syntax allows an iterable such as an array expression to be expanded in-place. Let’s actually dive into some examples straight away. It is much more simpler that way!Examples of the ES6 Spread Operator ...Example #1Problem statement: Let’s write a function to display the sum of 3 numbers passed to it in an array.

We would have done this as follows in the old ES5 way. 😏var arr = [1,2,3]; functionsum(a,b,c) { var output = a + b + c; consol…

Diwali Wishes

Happy Diwali 2017
We are already on the brink of the new year and the festival of lights is already here!May this festival of lights, bring joy, peace and prosperity to you and your loved ones! Wishing you a very happy Diwali and a prosperous new year!For your holiday family portraits and baby shoots I would recommend a really talented and professional photographer in the SF Bay Area. Her portfolio would speak for itself!Happy holidays and have a safe Diwali!

ES6 101 - Lexical Declarations - Const

ES6 101 - Lexical Declarations - Const

This is the third post in the ES6 101 Series and we will be looking at the ES6 lexical declartions keyword const. This is more of a continuation of the post on let, so I would highly recommend you to read that before you move forward. In case you feel like looking at const that too works! Go ahead and keep reading.As we saw in the post yesterday, variables created with the let keyword have limited scope and they live within the block, statement or the expression that they have been declared in. You cannot redeclare the let variables but these variables are mutable, i.e. theirs values can be changed and updated.As the name suggests, const helps you create variables that have a constant value! These variables are not mutable, which means, the value of these variables cannot be changed or updated. Let’s look at a few examples to understand this better.Examples using ES6 constconst pi = 3.14; console.log(pi); pi = ++pi; // Uncaught TypeEr…

ES6 Fat Arrow Functions

ES6 101 - Fat Arrow Functions


I attended a 2 day ReactJs 101 Training last week. Yes! towards the end of 2017 - React 101. That story is for another blog post, but I am happy I took this training. It opened my eyes to a lot of things that I have not been working on and made me realize that I was really falling behind the Javascript scene.

The main thing that I realized I was lacking was ES6. I know a couple of things, but am not using it on a regular basis. One statement by the trainer, especially hit me hard.

"ES6 has been around for over 2 years now (with babel). There is no reason for you to not use it! If you are not using it today, you are definitely missing the boat!"

So have now decided to start learning something everyday and post it. Share my learnings with the world and get some feedback, if anyone is willing to share some.

I am going to start with the Arrow Functions or as they are very commonly referred to as Fat Arrow Functions. Whenever someone refers to a Fat A…

ES6 101 - Lexical Declarations Let

ES6 Lexical Declarations - Let
This is the second post in the ES6 series and we will be covering a lexical declaration - ‘Let’ today. Before this we have looked into the ES6 Fat Arrow Functions. We looked at the syntax changes from ES5 to ES6, how return is implicit and how this works with the new Arrow syntax.Let’s now look at what let is. Simply put, let is the new var. Then what is the difference you ask! well, let’s look at right now. Whenever you see let in your code base, you should now consider the following thing.The scope of the variable declared with the let keyword is limited to the block, statement or expression that it is being used in. This differs from the var keyword, which defines variables globally or local to a function regardless of block scope.Let’s take a look at a few examples to see how var and let differ from each other.Examples using ES6 letlet does not attach anything to window 😍var a = 10; let b = 20; console.log(window.a); // 10console.log(window.b…