Ajax (Also Ajax : / Eɪdʒæks/ Javascript XML Web Development Client Side Asynchronous Web Applications Server
Ajax (Also Ajax : / Eɪdʒæks/ Javascript XML Web Development Client Side Asynchronous Web Applications Server
Ajax (Also Ajax : / Eɪdʒæks/ Javascript XML Web Development Client Side Asynchronous Web Applications Server
<div>
<h1>
</h1>
</div>
The following is incorrect nesting:
Although it might seem to go against the grain of HTML’s easygoing and easy-to-
code nature, if a page isn’t correctly constructed, then you won’t be able to
perform the kind of Ajax techniques discussed in this book. To use the DOM, the
page has to be correctly formed. Otherwise, you won’t be able to access the
different parts of the page.
Cascading Style Sheets (CSS) are the templates behind HTML pages that describe
the presentation and layout of the text and data contained within an HTML page.
CSS is of particular interest to the developer because changes made to the style
sheet are instantly reflected in the display of the page. The style sheets are linked
into the document commonly with the HTML tag, although it is possible (but not
preferable) to specify style attributes for each individual HTML tag on a page. You
can also access CSS properties via the DOM.
In the design of any web site or web application, you should make the division
between the content/ structure of the page and the presentation as clear as possible.
Suppose you have 100 pages and you specify the font size on all 100 pages as a
style attribute. When you’re forced to change the font size you will have to change
it on each individual page, instead of changing it just once in the style sheet.
Having a style sheet isn’t 100 percent essential, but to keep good organization,
style sheets are an indispensable aid.
The Document Object Model (DOM)
The DOM is a representation of the web page as a hierarchy or tree structure,
where every part of the page (the graphics, the text boxes, the buttons, and the text
itself) is modeled by the browser. Before IE 4 and Netscape Navigator 4, not every
part of the web page was accessible to code. In fact, changing text on a web page
had to be done by using server-side technologies or not at all. The whole page was
termed a document, and that document contained all the HTML tags and text that
made up the page. The DOM is specified as a standard by the World Wide Web
Consortium, also known as W3C (www.w3.org), and so it is a standard way for all
browsers to represent the page. You can pretty much guarantee that when you use
JavaScript to alter the background color of a page in IE, it will correctly do so in
Mozilla, Safari, or Opera as well. There are exceptions to the rule, though. There
are several nonstandard methods in IE, and items such as ActiveX controls can’t be
used in the other browsers. You can add items to the DOM or alter them using a
scripting language (such as JavaScript or VBScript), and they will appear on the
page immediately. They are typically addressed in the format that addresses the
page in hierarchical format, such as the following code, which addresses a button
called “button” on a form and changes the text of that button. Note that in this code
fragment, the form element has the name attribute set to form1:
document.form1.button.value = “Click Me”;
Or, you can use methods that can access the specific elements or subsets of
elements on the page, such as the document.getElementById method, which will
return a specific instance of an element that matches the criteria:
var myTextBox = document.getElementById(“myTextbox”);
You can then assign values to the variable you have created to alter the values. To
make the text box invisible, you could call the following:
myTextBox.style.visibility = “visible”;
Another related method is the getElementsByTagName method. The
getElementsByTagName method will return an array of elements on the web page
of type NodeList, all with a given tag name, even if there is only one occurrence of
that element on the page. The following code will return all the image elements on
the page:
var imageElements = document.getElementsByTagName(“img”);
It is also possible to assemble the page by adding new sections to the document
known as nodes. These can be elements, attributes, or even plain text. For example,
you could create a span tag that contains a short message and add it to the page as
follows:
var newTag = document.createElement(“span”);
var newText = document.createTextNode(“Here is some New Text. Ho
Hum.”); newTag.appendChild(newText);
document.body.appendChild(newTag);
All of these DOM techniques are applicable to the client side, and as a result, the
browser can update the page or sections of it instantly. Ajax leans on these
capabilities very heavily to provide the rich user experience. Also, as mentioned,
these techniques have been around since version 4 of IE. It’s just that they have
been underused.
JavaScript
JavaScript is the scripting language of choice of most web developers. Ajax
techniques aren’t solely the preserve of JavaScript. VBScript also offers the same
capabilities for dynamic updates as well — albeit tied to IE only. While JavaScript
has a standard specified in the ECMAScript standard, JavaScript was initially
created in Netscape Navigator before such standards existed. Microsoft created its
own version of JavaScript (called JScript) in parallel, and as a result, each
browser’s version of JavaScript is slightly different. Although JavaScript remains a
very powerful method for updating your web pages, some amount of dual-coding
is necessary to make sure that the web pages and applications function in the
correct way across browsers, When not possible, some errorhandling code will also
be necessary.
A fair amount of Ajax code will deal with handling cross-browser code and
handling errors if and when they arise, unless you can guarantee that your target
audience will only ever use one browser (such as on a local intranet). This is an
unfortunate set of circumstances that even new versions of IE and Firefox are not
able to rectify. Later chapters address both of these dilemmas. XML, XSLT, and
XPath
XML is another familiar cornerstone, the language that is used to describe and
structure data, to any web developer. With XML comes a whole plethora of
supporting technologies, each allocated its own individual niche. An XML
document contains no information about how it should be displayed or searched.
Once the data is rendered as an XML document, you typically need other
technologies to search and display information from it. IE and Firefox both contain
XML engines that can parse XML documents. XSLT is a language for
transforming XML documents into other XML documents. It isn’t restricted to
transforming XML documents into XML. You could also specify HTML or pure
text as the output format. When you transform a document, you start with a source
XML document, such as the following fragment: Hotel Shakespeare 50
Birmingham Hotel Washington 500 Chicago You apply a second document in
XSLT to the first document. The XSLT document contains a set of rules for how
the transformation should be conducted, as shown here:
You could then insert the XHTML document fragment into the HTML page
dynamically to update the page. XSLT is another standard maintained by W3C.
Both IE and Mozilla have XSLT processors; however, they don’t always treat their
XSLT documents in the same way. XSLT uses another language, XPath, to query
the XML document when applying its transformations. XPath queries are used to
address elements within the original XML document, such as the following:
The //Hotel statement instructs the browser’s XSLT processor to look for elements
called that are descendants of the root element . XPath queries can be used to
locate specific items or groups of items within an XML document, using a syntax
that is superficially similar to the way browsers can locate web pages, with the
following as an example: //HotelList/Hotel/Rooms These techniques can be used to
retrieve sections of data and display it on the page using the browser. Again, they
are able to offer instantaneous updates without the need for a trip back to the
server.