jQuery is OpenAjax Compliant
Today we’re announcing a new plugin that you can use to make jQuery OpenAjax compliant. By doing this, jQuery is becoming one of the first projects that has made its codebase compliant with the new standard.
Currently, the requirements for compliance are, relatively, simple – but still quite important. The relevant rules can be summarized as such:
- All libraries must register themselves (their name, version, and namespace) with the main OpenAjax library.
- All libraries must register any global variables that they use (in the case of jQuery it’s ‘jQuery’, and optionally ‘$’ – it defaults to just including ‘jQuery’).
- Any attempt to register “onload” or “onunload” handlers must go through the OpenAjax library. In the case of jQuery, if you do: $(window).load(function), and OpenAjax is included, jQuery will defer to OpenAjax’s solution.
- Libraries must not disrupt the ability of other libraries to traverse the HTML DOM document.
You can view jQuery’s compliance results, to verify that it does, indeed, past the test suite.
If you wish to use jQuery in conjunction with other OpenAjax-capable libraries, the process is rather straight forward.
Step 1 Download a copy of the jQuery OpenAjax plugin to your server.
Step 2 Include the library in your site, just after you include jQuery.
<script src="jquery.js"></script> <script src="jquery.openajax.js"></script>
Be sure to include both jQuery and the jQuery OpenAjax plugin after you’ve included the official OpenAjax library itself.
And that’s it! jQuery will now happily play with the OpenAjax core library.
It should be noted that, currently, jQuery is not part of the OpenAjax Alliance, but we’re in the process of applying and are eager to begin actively participating.
I think you should avoid to hardcode the jquery version number in the plugin:
OpenAjax.registerLibrary(“jQuery”, “http://jquery.com/”, “1.1”);
It should be better that the plugin checks that JQuery is indneed loaded before registering JQuery to the OpenAjax library and use is version string:
OpenAjax.registerLibrary(“jQuery”, “http://jquery.com/”, JQuery.fn.jquery);
So far I am not thrilled! :-( What is the benefit for us as a jQuery user? I mean, why should WE go for an OpenAjax compliance?
From what I understand, it will make our jQuery installation slower because it’s relies at some part on OpenAjax functions.
@Dean: We’ve recently had a number of inquiries about OpenAjax compliance, specifically from corporate users that want to have an assurance of interoperability. We’ve created this as a plugin so that these users can use jQuery in this setting but users that don’t need to have OpenAjax compliance can continue to use jQuery in its current form.
@Dominik: Its a plugin so if you’re in a situation where you need to adhere to OpenAjax standards, we now provide the option. If not, you can continue to use jQuery as you normally would.
While I haven’t seen the actual library and therefore can’t comment, I can comment on the value (or lack thereof) of this so-called ‘Open’-Ajax initiative. At best, this seems to be an attempt to fix something that isn’t broken, and at worst, a thinly-veiled attempt at imposing corporate control over an open standard. Frankly, I’m surprised Microsoft itself isn’t leading the charge.
@Nate: I hear ya. Its a tough call though because you want to be able to help people who require that level of compliance while still ensuring the ability for the project to grow in the direction that you want. I think we’ve struck a good balance here.
Hmm… Like a few people here I’m not totally pro OpenAjax.
It has its upsides and its downsides.
The pros are that corporate developers need intercompatability, and OpenAjax aims to do this. This should hopefully bring more users to jQuery.
The cons are that I don’t think that some of it is very good. I’ll point to Dean Edwards for his analysis as he raised the same points that are on my mind. Still, it’s a plugin so inclusion and usage is not required.
On the whole though, it’s good that John and co are looking to really push jQuery out there, as evidenced by the Ext announcement, so well done!
I don’t see what all the bitching is about. It’s a plugin. If you need it, use it, if you don’t, don’t.
This is what makes jQuery so powerful, having the ability to add stuff like this through plugins and not touching any of the core code.
Tony, you can ‘add stuff like this’ with all the JS frameworks around. jQuery is not the only one to do this, and isn’t even the best at it.
If you don’t see what the bitching is about, then I suggest you look into OpenAjax and form an opinion on it.
I’m concerned that, as the ‘standard’ is still a while away from stability, more requirements will be added, and it will become harder to comply, and more rigidity will result. This obviously isn’t good for jQuery as a whole. If there aren’t any concessions on the part of jQuery core further down the road, then there won’t be a problem, but it really is a case of ‘wait and see’.
@All: I’ve posted my thoughts on the matter here:
Sorry, but I wasn’t able to keep it under 1400 words ;-)
@Dominik: This plugin will do nothing to effect the speed of your jQuery code. Nor is it required that you even use the plugin (you would only include it if you were inclined to use the OpenAjax Hub, and have jQuery plug into it). At this point, I don’t see a reason for including this code in jQuery core.
Pingback: Domain Name Diary » News Wire: Dojo, jQuery, and YUI forge ahead
i think it is a good idea!
Tony, you can â€˜add stuff like thisâ€™ with all the JS frameworks around. jQuery is not the only one to do this, and isnâ€™t even the best at it.
What ever happened to this?
ooo good admin thank you