simplify ajax using jquery

77
Simplify AJAX using jQuery Sivasubramaniam Arunachalam December 24, 2012 @sivaa_in http://www.meetup.com/Online-Technology-User-Group/events/87541132/

Upload: sivasubramaniam-arunachalam

Post on 08-May-2015

2.882 views

Category:

Technology


2 download

TRANSCRIPT

Page 2: Simplify AJAX using jQuery

It’s me!

• Application Developer

• Technical Consultant

• Process Mentor

Page 3: Simplify AJAX using jQuery

It’s about you!

Web(Application) Developer &

Tasted jQuery

Page 4: Simplify AJAX using jQuery

Expectations

• Introduction

• No Server Specific

• Not a tutorial

• Not a reference guide

Page 5: Simplify AJAX using jQuery

Introduction to AJAX

Asynchronous

- No refresh

- No redirection

- Same Lifeline

JavaScript

And XML

Page 6: Simplify AJAX using jQuery

XMLHttpRequest

Page 7: Simplify AJAX using jQuery

Google and AJAX

Page 8: Simplify AJAX using jQuery

AJAX – The Flow

http://www.cs.uky.edu/~paulp/CS316F12/CS316AJAX_html_m79697898.png

Page 9: Simplify AJAX using jQuery

http://www.cs.uky.edu/~paulp/CS316F12/CS316AJAX_html_m79697898.png

Page 10: Simplify AJAX using jQuery

http://www.cs.uky.edu/~paulp/CS316F12/CS316AJAX_html_m79697898.png

Page 11: Simplify AJAX using jQuery

AJAX in Javascript - Initialize

Page 12: Simplify AJAX using jQuery

AJAX in Javascript - Callback

Page 13: Simplify AJAX using jQuery

AJAX in Javascript - Send

Page 14: Simplify AJAX using jQuery
Page 15: Simplify AJAX using jQuery
Page 16: Simplify AJAX using jQuery

HTTP Cache related Fields

• Expires

• Last-Modified

• Cache-Control

Page 17: Simplify AJAX using jQuery

Expires

Page 18: Simplify AJAX using jQuery

Last-Modified

Page 19: Simplify AJAX using jQuery

Cache-Control

Page 20: Simplify AJAX using jQuery

POST - n/a

Page 21: Simplify AJAX using jQuery

Caching and AJAX

• Caching is always good

• Same as HTTP Caching

• Static Content

• Lookup Data

• Images

• Not good for AJAX

• Mostly used with Dynamic Content

Page 22: Simplify AJAX using jQuery

IE always Caches AJAX requests

by Default

Page 23: Simplify AJAX using jQuery
Page 24: Simplify AJAX using jQuery

Simple Hack

Just add random number to request URL

Page 25: Simplify AJAX using jQuery

The jQuery Way

Page 26: Simplify AJAX using jQuery

Simple AJAX request

load()

Page 27: Simplify AJAX using jQuery

Simple AJAX request

Syntax:

$(“selector”).load(URL);

Page 28: Simplify AJAX using jQuery

Simple AJAX request

Example:

$(“#myDiv”).load(“/get.html”);

Page 29: Simplify AJAX using jQuery

Event are Important

Example:

$(“#myButton”).click(function(event){ $(“#myDiv”).load(“/get.html”);

});

Page 30: Simplify AJAX using jQuery

Process a Part

url = ajax/load_basic

url = ajax/load_basic #image

<dom id=“image”>…</dom>

Example: <a href=“url" id="image">

<img src=“img.jpg”>

</a>

Page 31: Simplify AJAX using jQuery

Better AJAX request

Syntax:

$(“selector”).load( URL, [data], [callback] );

Page 32: Simplify AJAX using jQuery

Better AJAX request - Methods

Syntax:

$(“selector”).load( URL, [data], [callback] );

GET / POST

Page 33: Simplify AJAX using jQuery

Better AJAX request - GET

Syntax:

$(“selector”).load( URL, [data], [callback] ); ”company=yahoo&loc=india”

GET

Page 34: Simplify AJAX using jQuery

Better AJAX request - GET

$(“selector”).load(

“ajax/getdata”,

”company=yahoo&loc=india”

);

Page 35: Simplify AJAX using jQuery

Better AJAX request - POST

Syntax:

$(“selector”).load( URL, [data], [callback] ); { company: ‘yahoo’, loc: ‘india’ }

POST

Page 36: Simplify AJAX using jQuery

Better AJAX request - POST

$(“selector”).load(

“ajax/getdata”,

{ company: ‘yahoo’, loc: ‘india’ }

);

Page 37: Simplify AJAX using jQuery

Better AJAX request

Syntax:

$(“selector”).load( URL, [data], [callback] );

(responseText, textStatus, XMLHttpRequest)

Page 38: Simplify AJAX using jQuery

AJAX, jQuery &

JSON

Page 39: Simplify AJAX using jQuery

JSON

JavaScript Object Notation

• data-interchange format • Light weight

• Human readable

• And better than XML

• Now language independent

Page 40: Simplify AJAX using jQuery

JSON - Example var json =

{

“id”: “23IT64”,

“name”: {

“first”: “Sivasubramaniam”,

“last”: “Arunachalam”

},

“profession”: “developer”

}

Page 41: Simplify AJAX using jQuery

JSON – Access (1) var json =

{

“id”: “23IT64”,

“name”: {

“first”: “Sivasubramaniam”,

“last”: “Arunachalam”

},

“profession”: “developer”

}

json.id

Page 42: Simplify AJAX using jQuery

JSON – Access (2) var json =

{

”id”: “23IT64”,

“name”: {

“first”: “Sivasubramaniam”,

“last”: “Arunachalam”

},

“profession”: “developer”

}

json.name.first

Page 43: Simplify AJAX using jQuery

AJAX - JSON Request

Syntax:

$.getJSON( URL, [data], [success callback] );

Page 44: Simplify AJAX using jQuery

AJAX - JSON Request

Syntax:

$.getJSON( URL, [data], [success callback] );

”company=yahoo&loc=india”

{ company: ‘yahoo’, loc: ‘india’ }

GET

No Post & GET only

Page 45: Simplify AJAX using jQuery

AJAX - JSON Request

Syntax:

$.getJSON( URL, [data], [success callback] );

Success_callback( json_data, [textStatus], [jqXHR] )

Page 46: Simplify AJAX using jQuery

AJAX - JSON Request - Example

$.getJSON ( “ajax/getjson”,

”company=yahoo&loc=india”,

function(json) { $("#mydiv01").html(json.id); $("#mydiv02").html(json.profession); }

);

Page 47: Simplify AJAX using jQuery

AJAX, jQuery &

Remote Script

Page 48: Simplify AJAX using jQuery

Let’s load a piece of Javascript from Server and execute it.

Page 49: Simplify AJAX using jQuery

AJAX – Script Request

Syntax:

$.getScript(

URL,

[success callback]

);

Page 50: Simplify AJAX using jQuery

AJAX – Script Request

Syntax:

$.getScript(

URL,

[success callback]

);

success_callback( [script_data], [textStatus], [jqXHR] )

Page 51: Simplify AJAX using jQuery

AJAX – Script Request - Example

$.getScript( “ajax/getscript”,

function() { $("#mydiv").html(“Script Loaded..”);

}

); Script will be executed automatically!

Page 52: Simplify AJAX using jQuery

A Simple GET AJAX Request

Page 53: Simplify AJAX using jQuery

AJAX – GET Request

Syntax:

$.get( URL, [data], [success callback], [response data type] );

Page 54: Simplify AJAX using jQuery

AJAX – GET Request Syntax:

$.get( URL, [data], [success callback], [response data type] );

{ company: ‘yahoo’, loc: ‘india’ }

Page 55: Simplify AJAX using jQuery

AJAX – GET Request Syntax:

$.get( URL, [data], [success callback], [response data type] );

success_callback( data, [textStatus], [jqXHR] )

Page 56: Simplify AJAX using jQuery

AJAX – GET Request Syntax:

$.get( URL, [data], [success callback], [response data type] );

• html • xml • json • script

Page 57: Simplify AJAX using jQuery

AJAX – GET Request - Example

$.get(

“ajax/getdata”,

{ company: ‘yahoo’, loc: ‘india’ },

function(responseText) {

$("#content").html(responseText)

},

“html”

);

Page 58: Simplify AJAX using jQuery

A Simple POST AJAX Request

Page 59: Simplify AJAX using jQuery

AJAX – POST Request

Syntax:

$.post( URL, [data], [success callback], [response data type] );

Page 60: Simplify AJAX using jQuery

AJAX – POST Request Syntax:

$.post( URL, [data], [success callback], [response data type] );

{ company: ‘yahoo’, loc: ‘india’ }

Page 61: Simplify AJAX using jQuery

AJAX – POST Request Syntax:

$.post( URL, [data], [success callback], [response data type] );

success_callback( data, [textStatus], [jqXHR] )

Page 62: Simplify AJAX using jQuery

AJAX – POST Request Syntax:

$.post( URL, [data], [success callback], [response data type] );

• html • xml • json • script

Page 63: Simplify AJAX using jQuery

AJAX – POST Request - Example

$.post(

“ajax/postdata”,

{ company: ‘yahoo’, loc: ‘india’ },

function(responseText) {

$("#content").html(responseText)

},

“html”

);

Page 64: Simplify AJAX using jQuery

And we are done with the

“basics”

Page 65: Simplify AJAX using jQuery

And what happens when AJAX requests are

“failed”?

Lets do advanced AJAX

Page 66: Simplify AJAX using jQuery

Global Setup

$.ajaxSetup()

• async

• cache

• timeout

• contentType

• dataType

• type

• url

• username

• password

• global

• beforeSend()

• complete()

• success()

• error()

Override is possible

Page 67: Simplify AJAX using jQuery

Global AJAX Event Handlers

• .ajaxSend()

• .ajaxStart()

• .ajaxStop()

• .ajaxComplete()

• .ajaxSuccess ()

• .ajaxError()

• .done()

• .fail()

• .always()

• .ajaxComplete()

• .ajaxSuccess ()

• .ajaxError()

Page 68: Simplify AJAX using jQuery

.ajaxStart() & .ajaxStop() var ajax_load = “<img src=“loading.gif”/> $("*").ajaxStart(function(){ $("#loading").html(ajax_load); }); $("*").ajaxStop(function(){ $("#loading").html(""); });

Page 69: Simplify AJAX using jQuery

.ajax() - Examples

$.ajax ( { url: “ajax/load“, success: function(data) { $(‘#result').html(data); } });

Page 70: Simplify AJAX using jQuery

.ajax() - Examples

$.ajax ( { url: “ajax/get“, type: “GET“, cache: true }).done(function( data) { $("#results").html(data); });

Page 71: Simplify AJAX using jQuery

.ajax() - Examples

$.ajax ( { url: “ajax/post“, type: “POST“, data: { company: “yahoo", loc: “india" } }).done(function( data) { $("#results").html(data); });

Page 72: Simplify AJAX using jQuery

.ajax() - Examples

$.ajax ( { url: “ajax/js“, type: “GET“, dataType: “script”, });

Page 73: Simplify AJAX using jQuery

.ajax() - Examples

$.ajax ( “ajax/load" ) .done (function() { alert("success"); }) .fail (function() { alert("error"); }) .always (function() { alert("complete") });

Page 74: Simplify AJAX using jQuery

Summary

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

Page 75: Simplify AJAX using jQuery

Demo

Page 77: Simplify AJAX using jQuery

References • http://www.clickonf5.org/2902/schedule-meeting-send-invitation-gmail/ • http://explainafide.com.au/rss-feed-reader/ • http://squash2020.com/squash-tops-google-search/google-map-logo/ • http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/ • http://stevesouders.com/hpws/rule-ajax.php • http://blog.httpwatch.com/2009/08/07/ajax-caching-two-important-facts/ • http://viralpatel.net/blogs/ajax-cache-problem-in-ie/ • http://www.tutorialspoint.com/jquery/jquery-ajax.htm