Training » All Courses » Web Development » JavaScript, AJAX, and Frameworks

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.

Instructors

Photo
Adam Breindel brings over 10 years of successes working with cutting-edge technology for small startups as well as major players in the travel, media/entertainment, financial, productivity, and consulting industries.

In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.

Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferencs, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization. More about Adam Breindel...

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)