Wednesday, April 10, 2013

Term project released

Information on the term project (Pittsburgh Interactive Research Accounting System) has been posted on the web page, along with the supplementary files. It is due on Saturday, April 27th.

Thursday, April 4, 2013

Wednesday, April 3, 2013

AJAX by example

AJAX stands for Asynchronous JAvascript and Xml. The main idea is that a web page can use AJAX to send requests (using Javascript) to a web server and then update parts of the page (which are specified using Javascript) according to the web server's response (which could run any type of script, e.g., PHP).

Here's the detailed sequence of steps typically found in an AJAX-enabled web page:

  1. [@web browser] Some event occurs (e.g., onload or after clicking something)
  2. [@web browser] A Javascript function is called 
  3. [@web browser] An XMLHttpRequest Object is created
  4. [@web browser] HttpRequest sent to web server
  5. [@web SERVER] HttpRequest processed, typically by a PHP script
  6. [@web SERVER] A response is generated (e.g., by looking up a database entry)
  7. [@web SERVER] Response is sent back to browser
  8. [@web browser] Process the returned data using Javascript (data could be text, html, or xml)
  9. [@web browser] Update parts of web page, specified by Javascript (e.g., using elementID)


  • hello1.html -- "Hello World" example, where after clicking the "Change Content" button, a request is sent to the web server for file hello_ajax.txt which is retrieved by the browser and used to change the content of the page.
  • hello2.html --  same with the previous example, but with the addition of a timestamp, computed locally by Javascript at the browser.
  • hello3.html --  same with the previous example, but now instead of a static file read from the web server, the content is generated by calling hello_ajax.php (source -- run) which computes the date and picks a random pair of words to show.
  • hello4.html --  same with the previous example, but now the PHP script at the web server hello_ajax_d.php (source -- run) includes a time delay of 2 seconds. This is used to demonstrate the asynchronous nature of AJAX. Notice the difference of the two timestamps displayed.
  • suggest.html -- generate suggestions for first names (that have the same prefix as what has been typed), after one or more letters are typed. Relies on gethint.php 
  • suggest2.html -- generate suggestions for first names (that contain these letters), after one or more letters are typed. Relies on gethint2.php

More information: