ajax by steven hernandez research analyst niatec

24
AJAX AJAX By By Steven Hernandez Steven Hernandez Research Analyst Research Analyst NIATEC NIATEC

Upload: kory-henderson

Post on 11-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AJAX By Steven Hernandez Research Analyst NIATEC

AJAXAJAX

ByBySteven HernandezSteven Hernandez

Research AnalystResearch AnalystNIATECNIATEC

Page 2: AJAX By Steven Hernandez Research Analyst NIATEC

IntroductionIntroduction

Who I amWho I am EducationEducation

AAS Electronic SystemsAAS Electronic Systems AAS Lasers and Electro-OpticsAAS Lasers and Electro-Optics BBA CIS from COB at ISUBBA CIS from COB at ISU Currently working towards MBA in IACurrently working towards MBA in IA

ExperienceExperience Network AdministrationNetwork Administration Desktop Support/Helpdesk ManagementDesktop Support/Helpdesk Management Systems Administration ConsultingSystems Administration Consulting Research AnalystResearch Analyst

Page 3: AJAX By Steven Hernandez Research Analyst NIATEC

NIATECNIATEC

National Information Assurance Training National Information Assurance Training and Education Centerand Education Center

SFS: Scholarship for ServiceSFS: Scholarship for ServiceUndergrads: Junior Rising or Candidates with Undergrads: Junior Rising or Candidates with

2 years remaining2 years remainingGrad students – MBAGrad students – MBAhttp://niatec.info/http://niatec.info/

Page 4: AJAX By Steven Hernandez Research Analyst NIATEC

Goals and ObjectivesGoals and Objectives

Overview of AJAXOverview of AJAXHistoryHistoryTechnologies InvolvedTechnologies InvolvedLimitations & UsesLimitations & Uses ImplementationsImplementationsBasic Terms and ComponentsBasic Terms and ComponentsBasic ObjectsBasic Objects

Page 5: AJAX By Steven Hernandez Research Analyst NIATEC

AJAX HistoryAJAX History

Microsoft Remote ScriptingMicrosoft Remote Scripting First to make use of asynchronous scriptingFirst to make use of asynchronous scripting

IFRAME based JSRS (2000)IFRAME based JSRS (2000) Image/Cookie techniques (2000)Image/Cookie techniques (2000) JavaScript on Demand (2002)JavaScript on Demand (2002) User-community mod to Remote scripting:User-community mod to Remote scripting:

XMLHttpRequestXMLHttpRequest

Asynchronous JavaScript and XMLAsynchronous JavaScript and XML Jesse James Garrett of Adaptive PathJesse James Garrett of Adaptive Path

Page 6: AJAX By Steven Hernandez Research Analyst NIATEC

The GoodThe Good

InteractiveInteractiveVery GUI and fun to play with!Very GUI and fun to play with!Very responsiveVery responsive

Supported by features found in all major Supported by features found in all major browsers on most existing platformsbrowsers on most existing platforms

Examples of AJAX done rightExamples of AJAX done rightGoogle Maps, Mail, and SuggestGoogle Maps, Mail, and Suggesthttp://www.flickr.com/http://www.flickr.com/

Page 7: AJAX By Steven Hernandez Research Analyst NIATEC

The BadThe Bad

There’s no going back baby!There’s no going back baby!Back button functionalityBack button functionalitySessions and cookies work around thisSessions and cookies work around this

Response time concernsResponse time concernsNetwork Latency ConsiderationsNetwork Latency Considerations

Feedback to the userFeedback to the userPreloading of dataPreloading of dataProper use of XMLHttpRequestProper use of XMLHttpRequestDevicesDevices

Page 8: AJAX By Steven Hernandez Research Analyst NIATEC

The UglyThe Ugly

JavaScript MUST be enabled!JavaScript MUST be enabled!Elaborate Error handlingElaborate Error handlingBrowser HandlingBrowser Handling

Learning Curve and DevelopmentLearning Curve and DevelopmentEarly StagesEarly StagesSharp Learning CurveSharp Learning CurveCrafty use of CSS, DHTML, XML, XHTML, Crafty use of CSS, DHTML, XML, XHTML,

and JSand JSMore of an Art than a Science at presentMore of an Art than a Science at present

Page 9: AJAX By Steven Hernandez Research Analyst NIATEC

Security ConsiderationsSecurity Considerations

Securing AJAXSecuring AJAXNew technologyNew technologyClient Side ProcessingClient Side Processing

Federal GuidelinesFederal Guidelines

Man in the Middle attacksMan in the Middle attacks

Page 10: AJAX By Steven Hernandez Research Analyst NIATEC

Accessibility ConsiderationsAccessibility Considerations

WAI accessibility GuidelinesWAI accessibility GuidelinesAJAX relies heavily on features present in AJAX relies heavily on features present in

desktop graphical browsersdesktop graphical browsers If unable to use the AJAX interfaceIf unable to use the AJAX interface

Would the page still be usable?Would the page still be usable?Performance?Performance?Feel?Feel?Content?Content?

Page 11: AJAX By Steven Hernandez Research Analyst NIATEC

Browsers Supporting AJAXBrowsers Supporting AJAX

Microsoft IE 5.0 and aboveMicrosoft IE 5.0 and above (Mac OS versions Not supported)(Mac OS versions Not supported)

Gecko based BrowsersGecko based Browsers MozillaMozilla FirefoxFirefox Netscape 7.1 and upNetscape 7.1 and up

Khtml APIKhtml API Konqueror 3.2 and upKonqueror 3.2 and up Apple’s Safari 1.2 and upApple’s Safari 1.2 and up

Opera 8.0 and upOpera 8.0 and up

Page 12: AJAX By Steven Hernandez Research Analyst NIATEC

Who’s Using AJAXWho’s Using AJAX GoogleGoogle

Google MapsGoogle Maps Google SuggestGoogle Suggest Google MailGoogle Mail

http://www.meebo.com/http://www.meebo.com/ Online messenger systemOnline messenger system

http://www.flickr.com/http://www.flickr.com/ Online Photo systemOnline Photo system

http://www.interaktonline.com/Products/KTML/Lihttp://www.interaktonline.com/Products/KTML/Live-Demos/?from=ajaxve-Demos/?from=ajax Online webpage developmentOnline webpage development

Page 13: AJAX By Steven Hernandez Research Analyst NIATEC

AJAX InnardsAJAX Innards

HTMLHTMLJavaScriptJavaScriptDHTMLDHTML

Dynamic HTMLDynamic HTMLDOMDOM

Document Object ModelDocument Object Model

Page 14: AJAX By Steven Hernandez Research Analyst NIATEC

HTMLHTML

Hypertext markup languageHypertext markup languageBuild webformsBuild webforms Identify Fields for useIdentify Fields for use

Page 15: AJAX By Steven Hernandez Research Analyst NIATEC

JavaScriptJavaScript

Core Code Running!Core Code Running!Facilitates communications with the serverFacilitates communications with the server

Page 16: AJAX By Steven Hernandez Research Analyst NIATEC

DHTMLDHTML

Dynamic HTMLDynamic HTMLHelps update forms dynamicallyHelps update forms dynamicallyMostly “div” and “span”Mostly “div” and “span”

Page 17: AJAX By Steven Hernandez Research Analyst NIATEC

DOMDOM

Document Object ModelDocument Object ModelUsed through JavaScriptUsed through JavaScriptUsed in heavy-duty Java and C/C++Used in heavy-duty Java and C/C++No worriesNo worries

Used mostly for XMLUsed mostly for XMLJust know its out thereJust know its out thereAnother lecture in itselfAnother lecture in itself

Page 18: AJAX By Steven Hernandez Research Analyst NIATEC

XMLHttpRequestXMLHttpRequest

JavaScript ObjectJavaScript ObjectHeart of AJAXHeart of AJAXLayer between Server and ClientLayer between Server and ClientMakes things “asynchronous”Makes things “asynchronous”Example:Example:

Create a new XMLHttpRequest ObjectCreate a new XMLHttpRequest Object<script language="javascript" <script language="javascript"

type="text/javascript"> var xmlHttp = new type="text/javascript"> var xmlHttp = new XMLHttpRequest(); </script> XMLHttpRequest(); </script>

Page 19: AJAX By Steven Hernandez Research Analyst NIATEC

JavaScript FunctionsJavaScript Functions

Common ExampleCommon Example // Get the value of the "phone" field and stuff it in // Get the value of the "phone" field and stuff it in

a variable called phone var phone = a variable called phone var phone = document.getElementById("phone").value; // Set document.getElementById("phone").value; // Set some values on a form using an array called some values on a form using an array called response response document.getElementById("order").value = document.getElementById("order").value = response[0]; response[0]; document.getElementById("address").value = document.getElementById("address").value = response[1]; response[1];

Page 20: AJAX By Steven Hernandez Research Analyst NIATEC

Browser ConsiderationsBrowser Considerations

Microsoft Internet ExplorerMicrosoft Internet Explorervar xmlHttp = false; try { xmlHttp = new var xmlHttp = false; try { xmlHttp = new

ActiveXObject("Msxml2.XMLHTTP"); } ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } catch (e2) { xmlHttp = false; } }

Page 21: AJAX By Steven Hernandez Research Analyst NIATEC

Browser ConsiderationsBrowser Considerations

Mozilla/Firefox (Non-IE)Mozilla/Firefox (Non-IE)var xmlHttp = new XMLHttpRequest var xmlHttp = new XMLHttpRequest

object; object;

Page 22: AJAX By Steven Hernandez Research Analyst NIATEC

Multi-Browser SupportMulti-Browser Support

/* Create a new XMLHttpRequest object to talk /* Create a new XMLHttpRequest object to talk to the Web server */ var xmlHttp = false; to the Web server */ var xmlHttp = false; /*@cc_on @*/ /*@if (@_jscript_version >= 5) try /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { xmlHttp = new { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } @end @*/ if (!xmlHttp (e2) { xmlHttp = false; } } @end @*/ if (!xmlHttp && typeof XMLHttpRequest != 'undefined') && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } { xmlHttp = new XMLHttpRequest(); }

Page 23: AJAX By Steven Hernandez Research Analyst NIATEC

ConclusionsConclusions

New TechnologyNew TechnologyStandards and common criteria are still in Standards and common criteria are still in

developmentdevelopmentMore of an art than a scienceMore of an art than a scienceBeautiful interfaces and webpagesBeautiful interfaces and webpagesThe futureThe future

AJAX.NET and similarAJAX.NET and similar

Page 24: AJAX By Steven Hernandez Research Analyst NIATEC

Questions/CommentsQuestions/Comments

Thanks!Thanks!