Course Summary
The JavaScript, AJAX, and Frameworks course covers the programming with the JavaScript language, building web pages that interact with server-side resources, and accelerating development with popular application frameworks. Participants will learn how to use JavaScript and related debugging tools within a browser context, and how to use the web page as a dynamic user interface. Students will then learn how to interact with web services to perform business operations and communicate results to a user, and how to leverage existing JavaScript frameworks to easily add advanced capabilities to their apps, while keeping them cross-platform and cross-browser compatible.Duration
3 days.
Objectives
At the end of this course students will be able to:
- Write code with the JavaScript language, leveraging its strong points
- Understand how to prepare JavaScript programs to run in a browser
- Avoid problematic language constructs
- Interactively debug JavaScript code and troubleshoot interactions with the DOM using advanced tools
- Make network requests from JavaScript, understanding the security restrictions and implications of these requests
- Understand and leverage JSON where appropriate
- Create and change user interface elements to reflect different states of an application
- Properly support the back-button, history, and URL-addressibility in their apps
- Choose and integrate additional code libraries
- Programmatically integrate vector graphics and other advanced capabilities into their apps
- Maintain awareness of architectural requirements, browser-compatibility requirements, and security considerations.
Audience
The course is intended for web designers and developers who wish to learn how create rich web user experiences using the client-side capabilities of JavaScript.
To benefit from this course, students should be familiar with core programming constructs in any language, including branching, looping, variables, and functions. Students should also be familiar with the HTML, the basics of HTTP, and the DOM. Experience with interactive debugging and more advanced aspects of programming and TCP/IP networking is helpful but not necessary.
Outline
Day 1: JavaScript
- JavaScript language principles (prototypal inheritance, functional programming)
- Syntax
- Good Parts (per Douglas Crockford)
- Not-So-Good-Parts
- Language vs. Implementation (browsers, Java Rhino engine, etc.)
- Tools (Firebug, JSLint, etc.)
- Cross-browser issues
Day 2: Core AJAX
- Explaining AJAX
- XMLHTTPRequest
- Cross-browser issues and use of a library simply as XHR helper
- HTML vs XML vs JSON as data formats
- Using returned data to update the page
- Same-domain policy, issues, solutions
- JSONP
- History / back button problems and solution pattern
- Security issues
Day 3: JavaScript Frameworks
- XHR Help
DOM processing/rewriting (e.g. jQuery)
Visual effects
UI Widget kits (e.g. ExtJS)
Vector graphics (e.g. Rahael)
Offline storage
Cutting-edge (DojoX Comet, crypto, etc.)
"Full-stack" library (e.g. Google Closure, YUI)