How do I handle the back and forward buttons?
While you could go out and create a custom solution that  tracks the current state on your application I recommend  you leave this to the experts. Dojo addresses the  navigation in a browser neutral way as can be seen in  the JavaScript example below.
function updateOnServer(oldId, oldValue,
itemId, itemValue) {
var bindArgs = {
url: "faces/ajax-dlabel-update",
method: "post",
content: {"component-id": itemId, "component-value":
itemValue},
mimetype: "text/xml",
load: function(type, data) {
processUpdateResponse(data);
},
backButton: function() {
alert("old itemid was " + oldId);
},
forwardButton: function(){
alert("forward we must go!");
}
};
dojo.io.bind(bindArgs);
}
The example above will update a value on the server  using dojo.io.bind() with a function as a property that  is responsible for dealing with the browser back button  event. As a developer you are capable of restoring the  value to the oldValue or taking any other action that  you see fit. The underlying details of how the how the  browser button event are detected are hidden from the  developer by Dojo.
AJAX: How to Handle Bookmarks and Back Buttons details  this problem and provides a JavaScript library Really  Simple History framework (RSH) that focuses just on the  back and forward issue. 
How does HTML_AJAX compare with the XAJAX project at  Sourceforge? 
XAJAX uses XML as a transport for data between the  webpage and server, and you don't write your own  javascript data handlers to manipulate the data received  from the server. Instead you use a php class and built  in javascript methods, a combination that works very  similiar to the HTML_AJAX_Action class and haSerializer  combo. XAJAX is designed for simplicity and ease of use.
HTML_AJAX allows for multiple transmission types for  your ajax data - such as urlencoding, json,  phpserialized, plain text, with others planned, and has  a system you can use to write your own serializers to  meet your specific needs. HTML_AJAX has a class to help  generate javascript (HTML_AJAX_Helper) similiar to ruby  on rail's javascript helper (although it isn't  complete), and an action system similiar to XAJAX's  "action pump" that allows you to avoid writing  javascript data handlers if you desire.
But it also has the ability to write your own data  handling routines, automatically register classes and  methods using a server "proxy" script, do different  types of callbacks including grabbing remote urls,  choose between sync and async requests, has iframe  xmlhttprequest emulation fallback capabilities for users  with old browsers or disabled activeX, and is in active  development with more features planned (see the Road Map  for details)
HTML_AJAX has additional features such as client pooling  and priority queues for more advanced users, and even a  javascript utility class. Although you can use HTML_AJAX  the same way you use XAJAX, the additional features make  it more robust, extensible and flexible. And it is a  pear package, you can use the pear installer to both  install and keep it up to date.
If you're asking which is "better" - as with most php  scripts it's a matter of taste and need. Do you need a  quick, simple ajax solution? Or do you want something  that's flexible, extensible, and looking to incorporate  even more great features? It depends on the project, you  as a writer, and your future plans. 
What browsers support AJAX?  
Internet Explorer 5.0 and up, Opera 7.6 and up, Netscape  7.1 and up, Firefox 1.0 and up, Safari 1.2 and up, among  others.
How do I send an image using AJAX?  
While it may appear that images are being sent when  using AJAX with an application like Google Maps what is  really happening is that the URLs of images are being  send as the response of an AJAX request and those URLs  are being set using DHTML.
In this example an XML document is returned from an AJAX  interaction and the category bar is populated.
Notice that the image-url element contains the location  of the URL for the image representing a category. The  callback method of an AJAX interaction will parse the  response XML document and call the addCategory function  for each category included in the response XML document.  The addCategory function looks up a table row element "categoryTable"  in body of the page and adds a row to the element which  contains the image.
...
function addCategory(id, name, imageSrc) {
var categoryTable =  document.getElementById("categoryTable");
var row = document.createElement("tr");
var catCell = document.createElement("td");
var img = document.createElement("img");
img.src = ("images\\" + imageSrc);
var link = document.createElement("a");
link.className ="category";
link.appendChild(document.createTextNode(name));
link.setAttribute("onclick", "catalog?command=category&catid="  + id);
catCell.appendChild(img);
catCell.appendChild(link);
row.appendChild(catCell);
categoryTable.appendChild(row);
...Body Here 
Note that the source of the image is set to the image  source. The image is loaded by a subsequent HTTP request  for the image at the URL "images/books_icon.gif" or  "images/electronic_icon.gif" that occurs when the img  element is added to the categoryTable.
Will HTML_AJAX integrate with other Javascript AJAX  libraries such as scriptaculous ? How would this  integration look like? 
HTML_AJAX doesn't have specific plans to integrate with  other JavaScript libraries. Part of this is because  external dependencies make for a more complicated  installation process. It might make sense to offer some  optional dependencies on a library like scriptaculous  automatically using its visual effects for the loading  box or something, but there isn't a lot to gain from  making default visuals like that flashier since they are  designed to be easily replaceable.
Most integration would take place in higher level  components. Its unclear whether higher level components  like that should be part of HTML_AJAX delivered through  PEAR or if they should just be supported by HTML_AJAX  and made available from http://htmlajax.org or some  other site. If your interested in building widgets or  components based on HTML_AJAX please let me know.
HTML_AJAX does however offer the ability to use its  library loading mechanism with any JavaScript library. I  use scriptaculous in conjunction with HTML_AJAX and I  load both libraries through the server.
To do this you just need to register the library with  your server and load add its flag to your include line.
$this->server->registerJSLibrary('scriptaculous',
array('prototype.js','scriptaculous.js','builder.js','effects.js','dragdrop.js','controls.js','slider.js'), '/pathto/scriptaculous/');?>
thank u
ReplyDelete