Home > Articles

Introduction to HIJAX

Ivan Pepelnjak
  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close WindowIvan Pepelnjak

Ivan Pepelnjak

Learn more…

Publish Your Application Stories to Facebook
Oct 21, 2009
Use Facebook Connect to Bring Your Application to Millions of Users
Aug 31, 2009
Developing AJAX Applications with jQuery
Jun 30, 2009
Web Page Refactoring with jQuery
Jun 10, 2009
Introduction to jQuery: Use jQuery to Write Simpler, Shorter, More Readable JavaScript Code
Jun 1, 2009
Testing Your Website in a Realistic Environment
Aug 5, 2008
Fix Your Web Site Performance Problems
Jul 30, 2008
Why Is My Web Site So Slow for Global Visitors?
Jul 21, 2008
Generating Atom Feed from SQL Data
Mar 31, 2008
Implementing Access Controls on SQL Server Data
Mar 14, 2008
Make Your Web Pages Mobile-Friendly
Jan 18, 2008
Use Google as Your Gateway to the Mobile Internet
Dec 28, 2007
Enhance Your AJAX Applications with Visual Cues
Dec 14, 2007
Building Modal Dialogs into Your Web Application
Nov 9, 2007
Adding Keyboard Shortcuts to Your Web User Interface
Nov 2, 2007
XML Handling in Microsoft SQL Server 2005
Oct 19, 2007
Storing XML Data in a Relational Database
Oct 5, 2007
Serve SQL Data in XML Format
Sep 28, 2007
Enrich Your HTML Tables with JavaScript Progressive Enhancement
Sep 7, 2007
Introduction to HIJAX
Aug 24, 2007
Seven Common CSS Mistakes and How to Avoid Them
Jul 20, 2007
JavaScript Progressive Enhancement in Practice
Jun 15, 2007
Make Pop-Up Windows Visible to Search Engines
Feb 16, 2007
Automate the Pagination of Your Web Pages
Feb 2, 2007
Using WordProcessingML to Generate Clean HTML from Word
Jan 26, 2007
Optimized Presentation of XML Content
Dec 15, 2006
Reap the Benefits of Web Caching, Part 3: Database Integration
Nov 22, 2006
Reap the Benefits of Web Caching, Part 2: Reduce the Download Time
Nov 17, 2006
Reap the Benefits of Web Caching, Part 1: Explicit Content Expiration
Oct 27, 2006
Improve Your Search Engine Ranking with AJAX
Jul 28, 2006
Using Multicast Domains
Jun 27, 2003
Should I Be Interested in MPLS Traffic Engineering?
Jan 3, 2003
Is Troubleshooting Important?
Dec 27, 2002
MPLS/VPN Architecture Overview
Aug 2, 2002
Multiprotocol Label Switching (MPLS) Architecture Overview
Jan 1, 2001
JavaScript Modal Dialog Box in a Frameset Environment
By on December 12, 2007 1 Comment

Only a few modifications are needed to adapt the solution I've described in the Building Modal Dialogs into Your Web Application to a frameset environment.

Ivan Pepelnjak describes how you can deploy an interactive AJAX application while still supporting visitors with older browsers, users that disabled JavaScript and search engine spiders.

In the Web 2.0 world, every idea or paradigm has to have a catchy name, and HIJAX (which gets lots of its gleam from the –JAX suffix) is no exception. It definitely sounds better than Progressive Enhancement when using Asynchronous JavaScript and XML, which is what HIJAX is all about—giving users without JavaScript access to your AJAX-centric applications.

Introduction to HIJAX

In my previous article, "JavaScript Progressive Enhancement in Practice," I described how you can ensure that all visitors of your web site, including search engine spiders and users on low-end or mobile platforms can get as much functionality from your web site as their browsers allow. HIJAX is an extension of that methodology, making sure that all visitors of your web site get at least the basic functionality your site offers while giving the visitors with JavaScript support all the benefits they expect from a well-designed AJAX application. This might seem like a paradox at first; however, using the right development methodology can get you as close to that goal as you wish. In words of Jeremy Keith, you need to do the following:

  • Plan for AJAX from the start.
  • Implement AJAX at the end.

In this article, I’ll show you how you can do that in practice using a simple application you’ve already seen in my previous article on the frequently asked questions. While the questions and answers were stored as a simple HTML page in the previous article, now we’ll fetch them on-demand from a relational database.

Before jumping into the implementation details, let me conclude this section with a few words of warning: The more interactive an application is, the more effort (and time and money) you’ll have to put into developing two streams of it (the static HTML one and the AJAX one). Some applications are simply not interesting for the search engines (Gmail is a perfect example) and in some cases you might decide to ignore the small percentage of users who can’t run JavaScript (more so if you’re offering the applications for free). In other cases (such as the FAQ application), you would want the search engines to find all the information, so going the HIJAX route is the only sensible approach.

The majority of the applications fall somewhere in the middle—some parts of them are viable candidates for the HIJAX methodology, whereas the more advanced functions could be made available only to users with JavaScript. In one of my applications (a public repository of rock climbing data), I decided to give read-only access to all data stored in the database to everyone, whereas only users with JavaScript-enabled browsers can modify the data, and the high-end functions are made available only through browsers that support XSLT (which excludes most releases of Opera).

  • Share ThisShare This
  • Your Account

Discussions

It is great information that I have looked for long time
Posted Mar 5, 2009 11:57 PM by vanquang.pham
0 Replies

Make a New Comment

You must log in in order to post a comment.

Informit Network