Frequently Asked Questions


General

What Does Xanjax Signify?

Xanjax is an acronym for:

'eXtensible Asynchronous Navigable Javasript And Xml.'
Why release yet another AJAX framework?

The developer wanted a fast, tiny, fully client side AJAX framework. (see 'The Basis For Xanjax' for a more detailed answer)

Essential features would be:

  • event driven navigation
  • back, forward, history and bookmarking
  • built in xml to html conversion.

AJAX would then become practical for updating, creating, and improving ordinary websites;  not just sites needing specific 'Web 2' enhancements without need of traditional browser navigation.  'Web 2' extensions would then be very easy to add to the updated/created site, the necessary XMLHttpRequest communications and CSS support already being in place.

Although plenty of interesting work was being done in the AJAX arena, only a couple of solutions seemed to exist at the time of writing which attempted to simulate traditional browser navigation, bookmarking and history; these solutions were not event driven, were relatively large, depended on extensive browser sniffing, seemed not to address xml to html conversion, or depended on a hybrid of client-side and server-side scripting.

The existing solutions simply didn't match the developer's basic needs.

Why doesn't Xanjax include pre-built graphics/widgets?

It probably will one day!  Like to help?

Right now, a tiny, fast, solid foundation is a more important priority than graphics interface elements, which can easily be added as modules to a well designed framework. For the moment we're just focussing on getting the foundations right.

Progressive enhancement is an important consideration;  not only for those who cannot use javascript or CSS, but for the millions more users on slow networks sharing broadband, such as students and small business users, and the millions still on dialup connections. Setting up widgets or other graphics that don't disadvantage these users is no small task. Let's face it, there are presently very few AJAX based sites which address progressive enhancement at all; there are many (if not most) with all the fancy bells and whistles which are totally useless on a low performance connection.

Ultimately, it is intended that Xanjax will address the complex issue of progressive enhancement in a way which makes it easier for designers to properly cater for the main classes of users with less than optimum access. Although presentation is very important, we're inclined to think that most users just want their information as quickly as possible.

Delivery in a fancy package would be a bonus.  If and when we can oblige, we will.

Which Browsers Does Xanjax Support?

Short answer - All Popular Browsers!  Xanjax has recently been tested with Firefox 2.x & 3.x, Google Chromium, Internet Explorers 5.5, 6.1, 7.0 & 8.0, Opera 9.51, SeaMonkey 1.1.15, and Safari 3.1.1.  It probably works with other Mozilla and WebKit based browsers too, but hasn't been tested.  It has been tested to work, degraded of course, with the text based browsers Links, Lynx and Dillo; maybe it works with all text based browsers!

Konqueror is not working, and probably never will because it neither conforms to standards, nor has a large user base. Unless I get some help with it, that's probably it's permanent status.

Does Xanjax Have Bugs?

Yes, like most software. See Xanjax blog for known issues.

Xanjax is still at release candidate or beta status. It seems to work quite well on the browsers it's been tested on, but when it gets more broadly tested it would be surprising if unknown problems didn't show up.

Xanjax is nearly ready for production use. It has been in constant use on xanjax.org for nearly 2 years over its various releases from pre-alpha until now. If you don't have problems using xanjax.org in any of your target browsers that's probably a fair test of Xanjax itself. Also, you can install the Xanjax Sitekit, modified to your own needs, on your own server or host for more rigorous special case testing. If you think it's stable enough and flexible enough for you, go ahead and use it, it's your decision.

Remember, as part of the licensing conditions, there's absolutely no warranty. If Xanjax ruins your life and wastes all your time and money, bad luck!

Where Do I Get Help Or Xanjax Support?

First, please understand that just because Xanjax is free software, that doesn't imply that help is free too. Having said that, there is much information that is free, and now that the main development cycle is slowing down, the developer is looking for constructive feedback in order to improve documentation, or isolate unknown bugs.

If your question is not answered here in any FAQ or in the HOWTO, first please use the Xanjax blog to ask a question. People other than the lead developer may be able to assist, leaving him more time to keep improving Xanjax. Ask a question about one specific issue, be as descriptive as necessary, but as brief as possible to increase your chances of getting a response.

Did you see the problem you're having using the unaltered Xanjax Sitekit? If you can't get the unaltered Xanjax sitekit working then you have either a webserver or a security issue. If you need help setting up a web server or hosting site, or with security levels, this is really not the forum; you should go to your server or hosting documentation and support first and get that issue sorted.

If you've *really* exhausted all those avenues and you're still having trouble, please courteously contact the lead developer, David Chapman, and he will provide support. There may be a fee for this service depending on the circumstances. If you're reporting a reproducible bug, there's no fee of course, but the bug might not be fixable in the short term either.


Technical

What Restrictions Does Xanjax Impose?

There are a few - this list will probably grow:

  • Even minor XHTML markup errors cause failure in Xanjax direct DOM insertion mode - make sure you use the W3C Markup Validator if you're having any problems.
  • Reference anchors must be prefixed by the page filename. That's because standard hashes are used to synthesize navigation in Xanjax. If you get it right, Xanjax changes the "#" to a "!" to synthesize normal anchor behaviour. Look at some anchor references in the Sitekit to see how it's done.
  • Links must be valid http protocol links in Xanjax direct DOM insertion mode; you can't directly insert ftp protocol links into IE7's DOM, so support has been dropped altogether for now.
  • Direct DOM updates might invoke browser security controls under some circumstances. This happens in IE sometimes, eg with script links, although this, and the other most common issues have now been worked around.
IE JavaScript "Object required error" (line xxx, char x)

Cause - invalid XML. Did you validate since last edit? Locate the character or string that offends and use an alternative. A common cause of this error is directly using & or another illegal XML character. Use & instead of just &.

This error will also occur if you don't include an empty title tag in the head of pages you are using just for conveying minor content.

Firefox JavaScript error: xanjax.js Line: xxx

Detail: xmlDoc.getElementsByTagName("body")[0] has no properties. Cause - invalid XML. Did you validate since last edit? Locate the character or string that offends and use an alternative. A common cause of this error is directly using & or another illegal XML character. Use & instead of just &.

A similar error occurs if you don't include an empty title tag in the head of pages you are using just for conveying minor content. eg. xmlDoc.getElementsByTagName("head")[0] has no properties.

Message: Xanjax Needs JavaScript & CSS For Normal Operation

Cause - JavaScript turned off, OR, invalid XML. Turn JavaScript on. Otherwise, did you validate since last edit? Locate the character or string that offends and use an alternative. A common cause of this error is directly using & or another illegal XML character. Use & instead of just &.

Alternatively, you may be using a browser which does not support Javascript (such as Lynx), or perhaps a non-standards compliant browser (such as Konqueror) which is (now the only one) not supported by Xanjax.

Target Anchors don't work properly.

Reference anchors must be prefixed by the page filename. That's because standard hashes are used to synthesize navigation in Xanjax. If you get it right, Xanjax changes the "#" to a "!" to synthesize normal anchor behaviour. Look at some anchor references in the Sitekit to see how it's done.


This resource is incomplete. The Xanjax Project is currently looking for individuals who have used Xanjax and who may be able to provide voluntary help in improving the documentation. If you think you can help, please email the project with the words "Contributor Application" in the subject line, stating clearly how you think you can contribute. Thanks.