user interaction: ajax basicsdjp3/classes/2012_09_inf133/lectures/... · 2012-10-18 · ajax basics...

33
User Interaction: AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17, 12

Upload: others

Post on 03-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

User Interaction:AJAX Basics

Assoc. Professor Donald J. PattersonINF 133 Fall 2012

1Wednesday, October 17, 12

Page 2: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

Follow up from last class

XMLHTML XHTML

JSON

Data TransportData Presentation

Wednesday, October 17, 12

Page 3: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

• AJAX

• “Asynchronous Javascript and XML”

• although XML can be replaced with any data format

• Developed to support “rich clients”

•One of the big enablers of Web 2.0

Wednesday, October 17, 12

Page 4: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Consider a spreadsheet, once can

• Edit data in place

• Changes are updated in real-time

• Dependencies across the document

• Feedback from the mouse and cursor

• Cells highlight

•Overall a pretty rich user interface experience

Wednesday, October 17, 12

Page 5: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• “Rich Client”

• Rich

• In the U/I sense

• “Spread-sheet” like

• Client

• Lives in a networked world

AJAX in action:Crane

Wednesday, October 17, 12

Page 6: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX AJAX in action:Crane

Wednesday, October 17, 12

Page 7: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Desktop World

LOGIC DATA

MODEL

PROCESS

FILE

SYSTEM

LOGIC DATA

MODEL

PROCESS

AJAX in action:Crane

Wednesday, October 17, 12

Page 8: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Desktop World

AJAX in action:Crane

Wednesday, October 17, 12

Page 9: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Cloud Computing World

MIDDLE

WARE

CLOUD

SERVICE

SERVER

FARMSERVER

FARMSERVER

FARMSERVER

FARM

LOGIC DATA

MODEL

PROCESS

LOGIC DATA

MODEL

PROCESS

MIDDLE

WARE

CLOUD

SERVICE

SERVER

FARMSERVER

FARMSERVER

FARMSERVER

FARM

AJAX in action:Crane

Wednesday, October 17, 12

Page 10: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Cloud Computing World

AJAX in action:Crane

Wednesday, October 17, 12

Page 11: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Network induces variable delays, always worse than local

• Cut to whiteboard

AJAX in action:Crane

Wednesday, October 17, 12

Page 12: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

Building a rich client is harder than building a web page

AJAX in action:Crane

Wednesday, October 17, 12

Page 13: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

rich client

AJAX in action:Crane

Wednesday, October 17, 12

Page 14: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

rich client

AJAX in action:Crane

Wednesday, October 17, 12

Page 15: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

Why have so many non-rich web pages been successful?

AJAX in action:Crane

Wednesday, October 17, 12

Page 16: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

What limits our ability to create rich web clients?

AJAX in action:Crane

Wednesday, October 17, 12

Page 17: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Sovereign Application vs.

• Transient Application

AJAX in action:Crane

Wednesday, October 17, 12

Page 18: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX AJAX in action:Crane

Wednesday, October 17, 12

Page 19: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

What can we do to overcome network latency?

AJAX in action:Crane

Wednesday, October 17, 12

Page 20: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Asynchronousness

• Cut to whiteboard

AJAX in action:Crane

Wednesday, October 17, 12

Page 21: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

What does this enable?

AJAX in action:Crane

Wednesday, October 17, 12

Page 22: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Defining principles of AJAX

AJAX in action:Crane

1.Browser hosts an application, not content

2.Server delivers data not content

3.User interaction with the application can be fluid and continuous

4.This is real coding

Wednesday, October 17, 12

Page 23: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

1.Browser hosts an application, not content

AJAX in action:Crane

• Static Web model

• every page is new content

• Real-time Web model

• download a program at first

• every page is new data

• Some server functionality is moved to browser

• example, the shopping basket is in the client

Wednesday, October 17, 12

Page 24: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX AJAX in action:Crane

1.Browser hosts an application, not content

HTML

HTML

HTML

HTML

Wednesday, October 17, 12

Page 25: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

• Browser hosts an application, not content

AJAX in action:Crane

HTMLJavascript

XML

XML

XML

XML

XML

HTML

Wednesday, October 17, 12

Page 26: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

2.Server delivers data not content

AJAX in action:Crane

Web 1.0

Wednesday, October 17, 12

Page 27: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

2.Server delivers data not content

AJAX in action:Crane

Web 1.0

Wednesday, October 17, 12

Page 28: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

2.Server delivers data not content

AJAX in action:Crane

Web 2.0

Wednesday, October 17, 12

Page 29: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

2.Server delivers data not content

AJAX in action:Crane

Wednesday, October 17, 12

Page 30: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

3.User interaction with the application can be fluid and continuous

AJAX in action:Crane

• Typically when a page is submitting data, the user is in limbo

• Use the shopping cart example

•Google Suggest

• Sovereign versus Transient Applications

Wednesday, October 17, 12

Page 31: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

AJAX

4.This is real coding

AJAX in action:Crane

• jQuery (http://jquery.com)

• emberjs (http://emberjs.com)

• Prototype (http://www.prototypejs.org/)

• ExtJS (http://www.extjs.com/)

• very good for prebuilt themes and controls, but not very customizable

• YUI (http://developer.yahoo.com/yui/)

•MooTools (http://mootools.net/) - very compact, much smaller than the others

• Dojo (http://dojotoolkit.org/)

Wednesday, October 17, 12

Page 33: User Interaction: AJAX Basicsdjp3/classes/2012_09_INF133/Lectures/... · 2012-10-18 · AJAX Basics Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 Wednesday, October 17,

Wednesday, October 17, 12