Learning AJAX From the Ground Up