jrutter
jrutter

Reputation: 3213

Will XSLT work well with AJAX?

This might be a stupid or obvious question, but our whole site is rendered using XSLT to transform xml which is created on the fly from database queries and other pieces. Im starting to push a lot of ajax into the site to make it more dynamic, is there a good tutorial on xslt and ajax?

Upvotes: 7

Views: 6292

Answers (6)

BeWarned
BeWarned

Reputation: 2338

Are you using XSLT on the server or in the browsers?

Modern browsers now have support for XML transformations from within the browser, one way is using AJAX to fetch the XML along with its stylesheet. You can then offload the processing of stylesheets to the clients machines. Be sure to cache the stylesheet and perhaps even send compressed XML.

The coding should be straight forward if you already know how to do AJAX. I worked on a system like this 5 years ago and it is a viable way to go.

Upvotes: 4

Deepfreezed
Deepfreezed

Reputation: 565

I think most of the answers are missing what the OP is asking for. I think the OP is asking if there is a way to get the XSLT generated HTML using AJAX.

I am taking this approach on Umbraco.

  1. Create the XSLT Macro that generates the HTML

  2. Place the XSLT Macro in a blank page

  3. Call page with AJAX

  4. Replace the existing HTML content

Upvotes: 2

dacracot
dacracot

Reputation: 22348

Try using tox as an example. There isn't a tutorial, but if you take a look at the example provided, it is well commented and includes AJAX.

Upvotes: 0

Robert Rossney
Robert Rossney

Reputation: 96702

I've used this technique extensively, both on client and server side. My experience has been that it performs adequately in most scenarios (but then I'm contrasting its server-side performance with VBScript in ASP pages).

Where performance is an issue, it's very important to take XML parsing and XSLT compilation out of the operation wherever possible. If you have a client-side method that uses XSLT to dynamically render an element in the page, make sure it's not loading and compiling the XSLT every time it's called. If you're using server-side XSLT, cache the XSLT processor object in whatever collection your server environment supports.

You can get significantly better client-side performance by using Javascript and JSON instead of XML and XSLT. I haven't benchmarked it, but I'd bet that the biggest performance gain comes out of the fact that parsing JSON is much less CPU-intensive than parsing XML.

Upvotes: 1

Todd Friedlich
Todd Friedlich

Reputation: 670

I would definetly agree with a previous commentor who shuddered at the thought of XSLT doing your heavy lifting. That is not going to be all that performant. Don't get me wrong, I like XSL a lot, but ...

Not as much of a tutorial, but the folks at Mulberry Tech (no idea what they do, or who they are) maintain a series of Quick Reference Guides for XSLT (and plenty others) that I find invaluable.

http://www.mulberrytech.com/quickref/

hope this helps...

Upvotes: 2

Bernard Igiri
Bernard Igiri

Reputation: 1290

our whole site is rendered using XSLT to transform xml

That thought makes me shudder. I've worked on two sites that have used XSLT to do heavy lifting in dynamically producing frequently accessed pages, and in both cases it required more development effort and CPU time per access than it was worth.

Irregardless, www.w3schools.com has plenty of good tutorials on many web technologies. They even have tests.

If you want to do AJAX while maintaining support for multiple web browsers I would strongly recommend that you check out: JQuery, Prototype, and Dojo

I think JQuery is the best but I will leave that determination up to you.

Upvotes: 1

Related Questions