ajax json jquery slides

52
AJAX and JSON with jQuery Chen-Hsiang (Jones) Yu [email protected] http://chyu.scripts.mit.edu/ajax-json-jquery-examples.zip Jan. 5, 2010 6.470 1

Upload: rachid-derman

Post on 25-Oct-2014

54 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ajax Json Jquery Slides

AJAX and JSON with jQuery

Chen-Hsiang (Jones) [email protected]

http://chyu.scripts.mit.edu/ajax-json-jquery-examples.zip

Jan. 5, 2010 6.470 1

p y p j j jq y p p

Page 2: Ajax Json Jquery Slides

The goal of this lectureThe goal of this lecture

• Understand and know how to use AJAX• Understand JSON• Understand and know how to use jQuery• Understand the usage of AJAX and JSON with jQueryg jQ y

jQuery

AJAX

JSON

Jan. 5, 2010 6.470 2

Page 3: Ajax Json Jquery Slides

OutlineOutline

• AJAX• JSON• JSON• jQuery

Jan. 5, 2010 6.470 3

Page 4: Ajax Json Jquery Slides

PrerequisitesPrerequisites

• MIT SIPB Web Script Servicehttp://scripts mit edu/web/http://scripts.mit.edu/web/Instructions:o Using any terminal to connect to Athena

athena% add scriptso athena% add scriptsathena% signup-web

o Your web space will be at http://username.scripts.mit.edu/o You can use any FTP client to upload your files and scriptso You can use any FTP client to upload your files and scripts

• FTP client:Filezilla (Windows/Linux/Mac) Filezilla (Windows/Linux/Mac) o http://filezilla-project.org/download.php

Alternative: OpenAFS - http://www.openafs.org/

Jan. 5, 2010 6.470 4

Page 5: Ajax Json Jquery Slides

AJAX

Jan. 5, 2010 6.470 5

Page 6: Ajax Json Jquery Slides

AJAX - 1AJAX 1

• It stands for “Asynchronous JavaScript and XML”

• It was first mentioned by Jesse James Garrett in 2005. [1]

• It is not a new technology. It is several technologies. [1]

standards-based presentation: XHTML and CSS

dynamic display and interaction: DOM

data interchange and manipulation: XML and XSLT

asynchronous data retrieval: XMLHttpRequest

binding everything together: JavaScript

Jan. 5, 2010 6.470 6

Page 7: Ajax Json Jquery Slides

AJAX - 2AJAX 2

• Intuition: Static web site vs. AJAX site

• AJAX engine: XMLHttpRequest object

It allows for asynchronous communication

Instead of freezing up until the completeness, the browser can

communicate with server and continue as normal.

Jan. 5, 2010 6.470 7

Page 8: Ajax Json Jquery Slides

AJAX - 3AJAX 3

Jan. 5, 2010 6.470 8

Figure: Traditional model vs. AJAX model [1]Figure: Synchronous interaction vs. Asynchronous

interaction [1]

Page 9: Ajax Json Jquery Slides

AJAX - 4AJAX 4

a.b.c

abandonv./n.to give up completely

SQL Query

c. to give up completely

abashv.to make embarrassed

Web Browser

Script Languages1 PHP

Databasedata

1. mySQL

C t t

1. PHP

Content:1. HTML Document2. XML Document3. JSON Document

Figure: The process of AJAX call

Jan. 5, 2010 6.470 99

Page 10: Ajax Json Jquery Slides

AJAX - 5AJAX 5

• POST and GET calls in AJAX [2]

GET places arguments in the query string, but POST doesn’t.

No noticeable difference in AJAX - AJAX request does not

appear in the address bar.

GET call in AJAX still has the size limitation on the amount of data that

can be passedcan be passed.

General principle:

o GET method: it is used to retrieve data to display in the page and theo GET method: it is used to retrieve data to display in the page and the

data is not expected to be changed on the server.

o POST method: it is used to update information on the server.

Jan. 5, 2010 6.470 10

p

Page 11: Ajax Json Jquery Slides

Exercise: Example 1Exercise: Example 1

A

letters

ABC

abandonv./n.to give up completely

abashv.to make embarrassed

content

to make embarrassed

……letter

Jan. 5, 2010 6.470 11

GRE Word List

Page 12: Ajax Json Jquery Slides

<?phpprint '<div class="entry">

<h3 class="term">ABANDON</h3><div class="part">v /n </div>div class part v./n. /div<div class="definition">to give up completely

</div></div>

<div class="entry"><h3 class="term">ABASH</h3><div class="part">v.</div><div class="definition">to make embarrassed

</div></div>

</div> ';;

?>example1.php

http://chyu.scripts.mit.edu/example1.php

Jan. 5, 2010 6.470 12

Page 13: Ajax Json Jquery Slides

AJAX – 6 Example 1<html><head> function sendRequest(url){AJAX 6 Example 1<link rel="stylesheet" href="example1.css" type="text/css"/><script type="text/javascript">

var ajax;

f ti j C t (){

ajax = ajaxCreate();

if(!ajax){alert("Browser is not compatable with XMLHttpRequest");return 0;

}function ajaxCreate(){if(window.XMLHttpRequest){

//For IE7+, Firefox, Chrome, Opera, Safarireturn new XMLHttpRequest();

} else {//For IE6 IE5

}

}

ajax.onreadystatechange = receiveData;ajax.open("GET", url, true);ajax.send(null);

//For IE6, IE5return new ActiveXObject("Microsoft.XMLHTTP");

}}

function receiveData(){

}

</script></head>

<body>if(ajax.readyState == 4){

if(ajax.status == 200){var content = document.getElementById('content');content.innerHTML = ajax.responseText;

}else{alert("Server process error");

<div class="letters"><div class="letter" id="letter-a">

<h3><a href="javascript:sendRequest('example1.php')">A</a>

</h3></div>alert("Server process error");

}}

}

</div></div><div id="content"></div>

</body></html>

Jan. 5, 2010 6.470 13

example1.htmlhttp://chyu.scripts.mit.edu/example1.html

Page 14: Ajax Json Jquery Slides

AJAX - 5AJAX 5

Properties Description [3]onreadystatechange A JavaScript function object that is called whenever the readyState attribute y g p j y

changes. The callback is called from the user interface thread.

readyState Returns values that indicate the current state of the object.

Value State Description

0 UNINITIALIZED open() has not been called yet0 UNINITIALIZED open() has not been called yet.

1 LOADING send() has not been called yet.

2 LOADED send() has been called, and headers and status are available.

3 INTERACTIVE Downloading; responseText holds partial data.

4 COMPLETED The operation is complete.

responseText The response to the request as text, or null if the request was unsucessful or has not yet been sent.

responseXML The response to the request as a DOM Document object, or null if the request was ns ccessf l has not et been sent o cannot be pa sed as XML The esponse is unsuccessful, has not yet been sent, or cannot be parsed as XML. The response is

parsed as if it were a text/xml stream.

status The status of the response to the request. This is the HTTP result code (for example, status is 200 for a successful request).

statusText The response string returned by the HTTP server. Unlike status, this includes the

Jan. 5, 2010 6.470 14

statusText The response string returned by the HTTP server. Unlike status, this includes the entire text of the response message ("200 OK", for example).

Page 15: Ajax Json Jquery Slides

AJAX - 6AJAX 6

Methods Description [3]Abort() Aborts the request if it has already been sent.

getAllResponseHeaders() Returns all the response headers as a string..

getResponseHeader("headerLabel") Returns the text of a specified header.

open("method" "URL"[ open( method , URL [, asyncFlag[, "userName"[, "password"]]])

Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use openRequest() instead.

send(content)

Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent. If the request is synchronous this method doesn't return until the response ( ) request is synchronous, this method doesn t return until the response has arrived.

setRequestHeader("label", "value") Sets the value of an HTTP request header.

Jan. 5, 2010 6.470 15

Page 16: Ajax Json Jquery Slides

Jan. 5, 2010 6.470 16

Page 17: Ajax Json Jquery Slides

JSON

Jan. 5, 2010 6.470 17

Page 18: Ajax Json Jquery Slides

JSON - 1JSON 1

• Text is a data transmission format on the Internet• A need to transmit complicated (structured) data• A need to transmit complicated (structured) data

Book info, movie info, etc.• Idea:

Encode dataTransmit in text formatDecode data

Jan. 5, 2010 6.470 18

Page 19: Ajax Json Jquery Slides

JSON - 2JSON 2

• It stands for “JavaScript Object Notation” and it is a text-b d d t i t h f t [4]based data interchange format. [4]

• JSON is built on two structures:

Object: A collection of name and value pairsj pArray: An ordered list of values

Jan. 5, 2010 6.470 19

Figure: The diagrams of the syntax of JSON [3]

Page 20: Ajax Json Jquery Slides

Explanation Examples

object with one member{

"course-name": "6.470“}

object with two members {

"course name": "6 470" object with two members (separated by a comma)

"course-name": "6.470", "units": 6

}

array with 3 elements ["foo", "bar", 12345]

{

object with an array as a value

{"course-name": "6.470", "times": ["12-4","12-4", "12-4"]

}

{"John":

objects with objects and arrays

John :{

"label":"John","data":[[1880,0.081536],[1881,0.08098],[1882,0.078308]]

},"James":

{"label":"James","data":[[1880,0.050053],[1881,0.05025],[1882,0.048278]]

}}

Jan. 5, 2010 6.470 20

Concrete Examples [5]

Page 21: Ajax Json Jquery Slides

JSON - 3JSON 3

• Examples:

{{

"course-name” : "6.470”}

["foo", "bar", 12345]

{"course-name” : "6.470", "times": ["12-4","12-4", "12-4"]

}

Jan. 5, 2010 6.470 21

Figure: The diagrams of the syntax of JSON [4]

Page 22: Ajax Json Jquery Slides

JSON - 4JSON 4

"data":[[1880 0 081536] [1881 0 08098] [1882 0 078308]]data :[[1880,0.081536],[1881,0.08098],[1882,0.078308]]

Jan. 5, 2010 6.470 22

Figure: The diagrams of the syntax of JSON [4]

Page 23: Ajax Json Jquery Slides

JSON - 5JSON 5

• Why JSON format is easier to be evaluated?

var a = {"John":{

"label":"John",,"data":[[1880,0.081536],[1881,0.08098],[1882,0.078308]]

},"James":{

"label":"James"label : James ,"data":[[1880,0.050053],[1881,0.05025],[1882,0.048278]]

}}

To get the value 1880 marked with red color: o We can use a.John.data[0][0]

Jan. 5, 2010 6.470 23

Page 24: Ajax Json Jquery Slides

Exercise: Example 2Exercise: Example 2

AB

abandonv./n. content

letters

C to give up completely

abashv.to make embarrassed

……letter

Jan. 5, 2010 6.470 24

Page 25: Ajax Json Jquery Slides

Example 2: Extending Example 1<script type="text/javascript">…function receiveData(){

Example 2: Extending Example 1

Wh t i th bl ?(){

if(ajax.readyState == 4){if(ajax.status == 200){ var data = [

{ "word":"ABANDON","function":"v /n "

What is the problem?

function : v./n. ,"definition":"to give up completely"},

{ "word":"ABASH","function":"v.","definition":"to make embarrassed"}

];

var content = document.getElementById('content');content.innerHTML = data;

}else{}else{alert("Server process error");

}}

} example2.htmlhttp://chyu scripts mit edu/example2 html

Jan. 5, 2010 6.470 25

…</script>

http://chyu.scripts.mit.edu/example2.html

Page 26: Ajax Json Jquery Slides

Wh t i th bl ?What is the problem?

Jan. 5, 2010 6.470 26

Page 27: Ajax Json Jquery Slides

<script type="text/javascript">…

function receiveData(){if( j d St t 4){if(ajax.readyState == 4){

if(ajax.status == 200){ var data = [

{ "word":"ABANDON","function":"v./n.","definition":"to give up completely"}definition : to give up completely },

{ "word":"ABASH","function":"v.","definition":"to make embarrassed"}

];

var output = ""; for(each in data){

output += '<div class="entry">';output += '<h3 class="word">' + data[each].word + '</h3>';output += '<div class="function">' + data[each].function + '</div>';

t t ' di l "d fi iti " ' d t [ h] d fi iti ' /di 'output += '<div class="definition">' + data[each].definition + '</div>';output += '</div>';

}

var content = document.getElementById('content');content innerHTML = output;content.innerHTML output;

}else{alert("Server process error");

}}

} example2-sol.html

Jan. 5, 2010 6.470 27

…</script>

phttp://chyu.scripts.mit.edu/example2-sol.html

Page 28: Ajax Json Jquery Slides

Jan. 5, 2010 6.470 28

Page 29: Ajax Json Jquery Slides

jQuery

Jan. 5, 2010 6.470 29

query ? query ? query ? query ? query ? query ? query ? query ? query ? query ? query ? query ? query ?

Page 30: Ajax Json Jquery Slides

jQuery - 1jQuery 1

• JavaScript libraries and frameworks

Prototype, jQuery, Dojo, Echo, GWT, MooTools, Rico, YUI, etc.

• Advantages

Providing common utilities

Handling cross-platform issues

(Might) provide extendibility - plugins

Faster Web development

Jan. 5, 2010 6.470 30

Page 31: Ajax Json Jquery Slides

jQuery - 2jQuery 2

• jQuery: A JavaScript library was released by John Resig in 2006

• Idea: Putting together a set of functions

Navigate a document

Event handling

Select DOM elements

Create animations

Ajax development

Extendibility: plugins

• It is used at 21% of the 10000 most popular websites. [6]

Jan. 5, 2010 6.470 31

Page 32: Ajax Json Jquery Slides

jQuery - 3jQuery 3

• Usage:

Step 1: Download the latest jQuery from jQuery.com

Step 2: Link the downloaded .js file

- <script type=“text/javascript” src=“jquery-1.3.2.js”></script>

- Note: It adds jQuery() function in the global namespace and the

function is also aliased as $()function is also aliased as $().

Step 3: Write your code

Jan. 5, 2010 6.470 32

Page 33: Ajax Json Jquery Slides

jQuery - 4jQuery 4

• APIs:jQjQuery coreSelectorsAttributesT iTraversingManipulationCSSE tEventsEffectsAjaxUtilitiUtilitiesjQuery UI

Jan. 5, 2010 6.470 33

Page 34: Ajax Json Jquery Slides

jQuery - 5jQuery 5

• APIs:jQjQuery coreSelectorsAttributesT iTraversingManipulationCSSE tEventsEffectsAjaxUtilitiUtilitiesjQuery UI

Jan. 5, 2010 6.470 34

Page 35: Ajax Json Jquery Slides

jQuery - 6jQuery 6

• Core:

jQuery functions:

o $(expression, [context])

$(‘input:radio’, document.form[0])

o $(html)

$(' di id “l di " L di /di ')$('<div id=“loading">Loading...</div>')

o $(elements)

$(document body) css(‘background’ ‘red’);$(document.body).css(‘background’, ‘red’);

o $(callback) The same as $(document).ready()

$(function(){alert(“test”);})

Jan. 5, 2010 6.470 35

$(function(){alert( test );})

Page 36: Ajax Json Jquery Slides

jQuery - 7jQuery 7

• Selectors:

No matter which type of selectors, we start with $().

jQuery supports nearly all selectors in CSS 1 through 3.

Types:

o Basic:

l t #id l l A l Belement, #id, class, .classA.classB

Ex: $(‘p’), $(‘#id’), $(‘.class’), $(‘.classA.classB’)

o Hierarchy: o Hierarchy:

ancestor decendent, parent > child, prev + next

Ex: $(‘form input’) $(‘#main > *’) $(‘label + input’)

Jan. 5, 2010 6.470 36

Ex: $( form input ), $( #main > ), $( label + input )

Page 37: Ajax Json Jquery Slides

jQuery - 8jQuery 8

o Form:

Selectors Matched Elements

:input input, select, textarea and button elements

:text, :radio, :checkbox, :image,:submit :reset :password :file

input element with attribute that is equal to the specified selectors:submit, :reset, :password, :file selectors

:button button element, input element with type is “button”

o Basic filters:

:first , :last , :not(selector) , :even , :odd , :eq(index) ,

:gt(index) , :lt(index) , :header , :animated

o Attribute filters:

[attribute] , [attribute!=value] , [attribute^=value] ,

Jan. 5, 2010 6.470 37

[attribute$=value] , [attribute*=value], [filter1][filter2]

Page 38: Ajax Json Jquery Slides

jQuery - 9jQuery 9

• Attributes:Attr:o attr(name), attr(properties) attr(key,value), removeAttr(name)

Class:o addClass(class), removeClass(class), toggleClass(class)

HTML:o html(), html(value)

Text:o text(), text(value)

Value:o val(), val(value)

Jan. 5, 2010 6.470 38

Page 39: Ajax Json Jquery Slides

jQuery - 10jQuery 10

• Events:l dPage load:

o ready(fn)Event handling:o bind(type, fn), unbind(type, fn), trigger(event)

Event helpers:o click(), click(fn), mousedown(fn), mouseout(fn), …

• Effects:Basics:o show() show(speed) hide() toggle() toggle(speed)o show(), show(speed), hide(), toggle(), toggle(speed)

Fading:o fadeIn(speed), fadeOut(speed), fadeTo(speed, opacity)

Jan. 5, 2010 6.470 39

Page 40: Ajax Json Jquery Slides

Exercise: Example 3Exercise: Example 3

content

A SCANDAL IN BOHEMIAI.

To Sherlock Holmes she is always THE woman. I have seldom heard him mention her under any other name. In

F F F• Please use example3.html

• Requirement: his eyes she eclipses and predominates the whole of her sex. It was not that he felt any emotion akin to love for Irene Adler. All emotions, and that one particularly, were abhorrent to his cold.....

II.

o Using jQuery selectors, attributes, events

o When clicking font symbols (small, medium, large) the content of paragraphs can change

At three o'clock precisely I was at Baker Street, but Holmes had not yet returned. The landlady informed me that he had left the house shortly after eight o'clock in the morning. ..

large), the content of paragraphs can change properly.

o Set default font size of the content of paragraphs as “medium”.

example3.html

Jan. 5, 2010 6.470 40

phttp://chyu.scripts.mit.edu/example3.html

Page 41: Ajax Json Jquery Slides

Exercise: Example 3 - reference solution

…<script type="text/javascript">

Exercise: Example 3 reference solution

$(document).ready(function(){$('#large').bind(‘click’, function(){

$('p').removeClass().addClass('large');});

$('#medium').bind(‘click’, function(){$('p').removeClass().addClass('medium');

});

$('#small').bind(‘click’, function(){$('p').removeClass().addClass('small');

});

// Set default font size as medium$('#medium').trigger('click');

});

</script> example3-sol.html

Jan. 5, 2010 6.470 41

</script>…

phttp://chyu.scripts.mit.edu/example3-sol.html

Page 42: Ajax Json Jquery Slides

Exercise: Example 3Exercise: Example 3

Jan. 5, 2010 6.470 42

The content was from [7].

Page 43: Ajax Json Jquery Slides

jQuery - 11jQuery 11• Ajax:

Ajax Request:o $.ajax(options) => options: a set of key/value pairso $.get(url, [data], [callback], [type])o $.post(url, [data], [callback], [type])o $.getJSON(url, [data], [callback], [type])o $.getScript(url, [callback])

$ post($.post("test.php", {func: "getNameAndTime"

},

$.ajax({

url: “process.php",type: "POST", data: “class=6470&name=Tim",

function(data){ alert(data.name); alert(data.time);

}, "json“

data: class 6470&name Tim ,success: function(msg){alert(“Data:" + msg );

}}

)

Jan. 5, 2010 6.470 43

json);

);

Page 44: Ajax Json Jquery Slides

jQuery - 12jQuery 12

$ tJSON( $.getJSON(

"http://api.flickr.com/services/feeds/photos_public.gne?tags=doggy&format=json&jsoncallback=?",

function(data){

$ each(data items f nction(i item){$.each(data.items, function(i,item){

$("<img/>").attr("src", item.media.m).appendTo("#images");

if ( i == 2 ) return false;

}}

);

}

););

Jan. 5, 2010 6.470 44

Page 45: Ajax Json Jquery Slides

jQuery - 13jQuery 13

Ajax Events:o ajaxComplete(callback), ajaxStart(callback), ajaxStop(callback), o ajaxComplete(callback), ajaxStart(callback), ajaxStop(callback),

ajaxSend(callback), ajaxError(callback), ajaxSuccess(callback)o Ex:

$('<div id="loading">Loading...</div>')$( div id loading Loading... /div )

.insertBefore("#images")

.ajaxStart(

function(){(){

$(this).show();

}

).ajaxStop(j

function(){

$(this).hide();

}

Jan. 5, 2010 6.470 45

);

Page 46: Ajax Json Jquery Slides

Exercise: Example 4Exercise: Example 4

a.b.c.

abandonv./n.to give up completely

abashv.to make embarrassed

Jan. 5, 2010 6.470 46

Page 47: Ajax Json Jquery Slides

Exercise: Example 4<?php

$data = '

Exercise: Example 4

[{

"word": "ABANDON","function": "v./n.","definition": "to give up completely"

}},{

"word": "ABASH","function": "v.","definition": "to make embarrassed"

},},{

"word": "ABATE","function": "v.","definition": "to make less in amount; wane"

},{

"word": "ABBREVIATE","function": "v.","definition": "to make shorter; to shorten a word or phrase"

}]

example4.php

Jan. 5, 2010 6.470 47

]';print($_GET['callback'].'('.$data.')');?>

http://chyu.scripts.mit.edu/example4.php

Page 48: Ajax Json Jquery Slides

Example 4: Using jQuery for example 1

…<script type="text/javascript">

$(document).ready(function(){

Example 4: Using jQuery for example 1

Part 1( ) y( ()var url="example4.php";

$('#letter-a').click(function(){

$.getJSON(l + '? llb k ?' 1st parameter url + '?callback=?',

function(data){ $('#content').empty();$.each(data, function(index, entry){

var html = '<div class="entry">';html += '<h3 class="word">' + entry['word'] + '</h3>';

1st parameter

html + <h3 class word > + entry[ word ] + </h3> ;html += '<div class="function">' + entry['function'] + '</div>';html += '<div class="definition">' + entry['definition'] + '</div>';html += '</div>';$('#content').fadeIn().append(html);

});

2nd parameter

});

return false;});…

});

Jan. 5, 2010 6.470 48

});</script>…

example4.htmlhttp://chyu.scripts.mit.edu/example4.html

Page 49: Ajax Json Jquery Slides

Example 4: Using jQuery for example 1

…<script type="text/javascript">

Example 4: Using jQuery for example 1

Part 2<script type= text/javascript >$(document).ready(function(){

// Slide up or down the function and definition of the word $('.word').live('click', function(){

$(this).siblings('.function').slideToggle().siblings('.definition').slideToggle();});

$('#showDetails').click(function(){$('.word').siblings('.function').show('slow').siblings('.definition').show('slow');

});});

$('#hideDetails').click(function(){$('.word').siblings('.function').hide('slow').siblings('.definition').hide('slow');

});

});</script>…

Chaining the effects

Jan. 5, 2010 6.470 49

example4.htmlhttp://chyu.scripts.mit.edu/example4.html

Page 50: Ajax Json Jquery Slides

Example 4: Using jQuery for example 1…<script type="text/javascript">$(document).ready(function(){ var url="example4.php";

Example 4: Using jQuery for example 1

Complete Version

$('#letter-a').click(function(){$.getJSON(url + '?callback=?', function(data){ $('#content').empty();$.each(data, function(index, entry){var html = '<div class="entry">';html += '<h3 class="word">' + entry['word'] + '</h3>';html + '<div class "function">' + entry['function'] + '</div>';html += <div class= function > + entry[ function ] + </div> ;html += '<div class="definition">' + entry['definition'] + '</div>';html += '</div>';$('#content').fadeIn().append(html);

});});return false;;

});

// Slide up or down the function and definition of the word $('.word').live('click', function(){$(this).siblings('.function').slideToggle().siblings('.definition').slideToggle();

});

$('#showDetails').click(function(){$('.word').siblings('.function').show('slow').siblings('.definition').show('slow');

});

$('#hideDetails').click(function(){$(' word') siblings(' function') hide('slow') siblings(' definition') hide('slow');

Jan. 5, 2010 6.470 50

$( .word ).siblings( .function ).hide( slow ).siblings( .definition ).hide( slow );});

});</script>…

example4.htmlhttp://chyu.scripts.mit.edu/example4.html

Page 51: Ajax Json Jquery Slides

Jan. 5, 2010 6.470 51

Page 52: Ajax Json Jquery Slides

ReferencesReferences

[1] Ajax: A New Approach to Web Applications. http://www.adaptivepath.com/ideas/essays/archives/000385.php

[2] AJAX G t P t htt //j i t b t / d/ j / / j ht[2] AJAX - Get or Post. http://javascript.about.com/od/ajax/a/ajaxgp.htm[3] Mozilla XMLHttpRequest. https://developer.mozilla.org/en/XMLHttpRequest[4] Introducing JSON. http://www.json.org/index.html[5] 6.470 2009 IAP - AJAX with jQuery. http://6.470.scripts.mit.edu/2009/[6] Websites using jQuery, ordered by popularity. http://www.backendbattles.com/backend/jQuery[ ] g jQ y, y p p y p // / /jQ y[7] Project Gutenberg - The Adventures of Sherlock Holmes. http://www.gutenberg.org/etext/1661[8] Jonathan Chaffer and Karl Swedberg, Learning jQuery 1.3, PACKT publishing, 2009.

• Lecture Slides: http://chyu.scripts.mit.edu/ajax-json-jquery-slides.pdfLecture Slides: http://chyu.scripts.mit.edu/ajax json jquery slides.pdf• Lecture Examples+Sol: http://chyu.scripts.mit.edu/ajax-json-jquery-examples+sol.zip

Jan. 5, 2010 6.470 52