| Course Code: |
IN 628 |
| Course Abstract: |
This course provides participants with advanced coverage and hands-on exercises using the latest and most common Ajax tools, frameworks, and design patterns implemented today. The course begins with coverage of Advanced JavaScript topics, ensuring a better understanding of one of the most misunderstood programming languages. A discussion of how to incorporate front-end testing into the development lifecycle and a look at JSUnit and Selenium follows. In this course, Ajax-based model-view-controller, caching, state patterns, throttling, aggregation, scheduling, client-server decoupling patterns, as well as cross-domain communication are explored. There is also an examination of how to write efficient, safe, and fast code for the browser. Participants will look at several libraries along the way, including Dojo, Prototype, jQuery, ExtJS, and YUI. Participants will take a look at practical implementations of AJAX in use and also undertake a project building an AJAX driven wiki. |
| Audience: |
This course is designed for participants already familiar with HTML, CSS, JavaScript, and Ajax basics who are interested in taking their JavaScript and AJAX skills to the next level. |
| Duration: |
2 days |
| Learning Outcomes: |
This course teaches participants to build rich client web-based interfaces using common frameworks such as Prototype, YUI, and Dojo. Participants learn how to take control of the browser, to create cross-browser, platform-neutral implementations. |
| Course Topics: |
Advanced JavaScript Topics Strict Type Checking Variable Scoping Encapsulation in JavaScript Closures Overloading with JavaScript JavaScript Objects: Constructor/Prototype Hybrids Object Literals Inheritance Namespaces Achieving Inheritance via Dojo, YUI, ExtJS Extending the DOM Object Augmentation Writing Better JavaScript
Ajax Requests and Frameworks Using XHRs Ajax and Prototype Ajax via JavaScript Libraries XHR Limitations IE-Specific XHR Limitations Mozilla Issues with XHRs Writing Cross-Browser Implementations IE vs.W3-Based Browsers Normalizing Events CSS using the Libraries Manipulating the DOM Deciding on Output Formats: XML, HTML, JSON Cross-Domain Proxies Incorporating a Dynamic Script Tag (JSON-P) Using IFrames IFrames as a Transport Mechanism Handling File Uploads
Ajax in Action Making Multiple Requests Request Queuing Dependent Responses Aborting Requests Forms and Event Handling Passing Parameters Rolling Forms
Unit Testing on the Front-End Incorporating JSUnit Strategies for testing with Selenium Firebug Logging Log4JS
Caching Requests Passive Caching Choosing Cache Keys Finite vs. Infinite Caching Predictive Caching Type Ahead Suggests Improving Client-Server Performance Caching Requests with Dojo Caching with YUI JavaScript Libraries: Components with Dojo, YUI, ExtJS Using Widgets with JavaScript Libraries Creating Widgets Form Controls ComboBoxes and Ajax Introducing Drag-and-Drop DataTable or Grid Widgets
Enhancing Performance and Security How the DOM Loads Executing Code as Early as Possible onAvailable Code Optimization Dealing with Browser Memory Leaks Code Compression and Verification Techniques Code Obfuscation Overview of Security Threats Cross-Site Scripting Attacks Data Injection Issues Applying a Sound Front-End Security Model |
| Prerequisites: |
Strong HTML and JavaScript knowledge is required. Knowledge of Ajax, OO JavaScript, and CSS is required. While the server-side discussions are Java-based, it is helpful to understand Java EE components such as servlets and JSPs, but not necessary. Server-side implementations are pre-written to minimize Java knowledge needed. |