O'Reilly logo

Learning JavaScript by Shelley Powers

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Working with XML—or Not

In Example 13-1, the response was returned as a text string, with contents formatted as HTML. When it was added to the page, the entire select element was replaced because Microsoft does not support innerHTML for select directly. A better approach would have been to take the response and generate options, which are then added to the page. However, returning the string as already formatted options isn’t optimal for processing.

Rather than format the options, you can return a string with the options concatenated with commas in between, such as the following:

return "Seattle,Olympia";

However, this isn’t very effective if the data is more complex. For instance, in our example, the value of the option item is different from the string that’s printed out. When you start returning text more complex than simple strings, the response gets more complicated.

For more complicated data, or data that you don’t want formatted as HTML, there are two other options: XML or JSON (JavaScript Object Notation). Let’s look at each of these approaches in turn.

Yes to XML

One advantage to returning a response formatted as XML is that the data can be much more complex than simple strings, or preformatted in HTML. In addition, there are several DOM methods that can process the data. After all, a web page is typically valid X(HTML) (we hope), and these methods can work on web pages.

Of course, using XML adds its own burdens. For instance, it’s important that the server-side application return ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required