Is the server or the client in control?
It depends. With AJAX the answer is more in between.  Control can be more centralized in a server-side  component or as a mix of client-side and server-side  controllers.
* Centralized server-side controller - When having a  more centralized controller the key is to make sure the  data in client-side page is in sync with that of the  server. Some applications may keep all the state on the  server and push all updates to client DOM via a simple  JavaScript controller.
* Client and server-side controllers - This architecture  would use JavaScript to do all presentation related  control, event processing, page manipulation, and  rendering of model data on the client. The server-side  would be responsible for things such as business logic  and pushing updated model data to the client. In this  case the server would not have intimate knowledge of the  presentation short of the initial page that would be  sent to the client page request.
There are some use cases where an entire AJAX  application can be written in a single page. Keep in  mind if you choose this type of architecture that  navigation and bookmarking should be considered.
Both methods are viable depending on what you are trying  to accomplish. I tend to prefer spreading the control  across the client and server. 
Is Ajax just another name for XMLHttpRequest?  
No. XMLHttpRequest is only part of the Ajax equation.  XMLHttpRequest is the technical component that makes the  asynchronous server communication possible; Ajax is our  name for the overall approach described in the article,  which relies not only on XMLHttpRequest, but on CSS,  DOM, and other technologies. 
How do I abort the current XMLHttpRequest?   
Just call the abort() method on the request. 
What is the minimum version of PHP that needs to be  running in order to use HTML_AJAX?   
The oldest PHP version i've fully tested HTML_AJAX is  4.3.11, but it should run on 4.2.0 without any problems.  (Testing reports from PHP versions older then 4.3.11  would be appreciated.) 
Why does HTML_AJAX hang on some server installs  
If you run into an HTML_AJAX problem only on some  servers, chances are your running into a problem with  output compression. If the output compression is handled  in the PHP config we detect that and do the right thing,  but if its done from an apache extension we have no way  of knowing its going to compress the body. Some times  setting HTML_AJAX::sendContentLength to false fixes the  problem, but in other cases you'll need to disabled the  extension for the AJAX pages.
I've also seen problems caused by debugging extensions  like XDebug, disabling the extension on the server page  usually fixes that. Questions dealing with Using  HTML_AJAX, and general JavaScript development 
How do I get the XMLHttpRequest object?   
Depending upon the browser... if (window.ActiveXObject)  { // Internet Explorer http_request = new  ActiveXObject("Microsoft.XMLHTTP"); } else if...
 Are there any security issues with AJAX?    
JavaScript is in plain view to the user with by  selecting view source of the page. JavaScript can not  access the local filesystem without the user's  permission. An AJAX interaction can only be made with  the servers-side component from which the page was  loaded. A proxy pattern could be used for AJAX  interactions with external services.
You need to be careful not to expose your application  model in such as way that your server-side components  are at risk if a nefarious user to reverse engineer your  application. As with any other web application, consider  using HTTPS to secure the connection when confidential  information is being exchanged. 
What about applets and plugins ?   
Don't be too quick to dump your plugin or applet based  portions of your application. While AJAX and DHTML can  do drag and drop and other advanced user interfaces  there still limitations especially when it comes to  browser support. Plugins and applets have been around  for a while and have been able to make AJAX like  requests for years. Applets provide a great set of UI  components and APIs that provide developers literally  anything.
Many people disregard applets or plugins because there  is a startup time to initialize the plugin and there is  no guarantee that the needed version of a plugin of JVM  is installed. Plugins and applets may not be as capable  of manipulating the page DOM. If you are in a uniform  environment or can depend on a specific JVM or plugin  version being available (such as in a corporate  environment) a plugin or applet solution is great.
One thing to consider is a mix of AJAX and applets or  plugins. Flickr uses a combination of AJAX interactions/DHTML  for labeling pictures and user interaction and a plugin  for manipulating photos and photo sets to provide a  great user experience. If you design your server-side  components well they can talk to both types of clients. 
Why did you feel the need to give this a name?   
I needed something shorter than “Asynchronous  JavaScript+CSS+DOM+XMLHttpRequest” to use when  discussing this approach with clients. 
Is AJAX code cross browser compatible?   
Not totally. Most browsers offer a native XMLHttpRequest  JavaScript object, while another one (Internet Explorer)  require you to get it as an ActiveX object.... 
Techniques for asynchronous server communication have  been around for years. What makes Ajax a “new” approach?
What’s new is the prominent use of these techniques in  real-world applications to change the fundamental  interaction model of the Web. Ajax is taking hold now  because these technologies and the industry’s  understanding of how to deploy them most effectively  have taken time to develop. 
Is Ajax a technology platform or is it an architectural  style?  
It’s both. Ajax is a set of technologies being used  together in a particular way.
No comments:
Post a Comment