Advanced AJAX and Web 2.0 Programming
This class is meant for Java programmers who already know Ajax programming. It teaches advanced JavaScript concepts such as prototyping, Ajax security issues and Ajax performance tuning. It also covers Web 2.0 topics such as mashups, offline application development and Rich Internet Application (RIA).
- Cost: Price on application
- Duration: 3 Days
- This course is not available as part of our public schedule but can be provided on a customised client specific basis.
A good understanding of Ajax, JavaScript DOM API, JSON and XML.
Introduction
New in CSS2
Simple Example
Formatted Output
Unformatted Output
Basic Syntax
Creating a Style Sheet
Value Types
Selectors
More on Selectors
Grouping Elements
The Box Model
Box Model Example
Box Properties
The Visual Formatting Model
Types of Boxes
Display Property
Positioning Schemes
The Position Property
Relative Positioning
The Float Property
The Clear Property
Absolute Positioning
Layered Presentation
Color Property
Background Properties
Font Properties
Summary
Object-Orientation
Closures
Memory Management
Array
- for loop
- Push, pop, splice
Object Property (Associative Array)
Using Namespaces
Regular Expression Matching
Cookies
Date/time Handling
Creating an Ajax Application API
• AJAX Attack Surface
Importance of Validating User Input
Race Conditions and How to Prevent Them
JavaScript Code Obfuscation
JavaScript Function Clobbering
Limiting Function Clobbering Using Namespaces
Limiting Function Clobbering Using Lazy Loading
Hijacking On-Demand AJAX
JSON Hijacking
Preventing JSON Hijacking
JavaScript Worms
Top 10 AJAX Security Holes
- Malformed JS Object Serialization
- JSON Pair Injection
- JS Array Poisoning
- Manipulated XML Stream
- Script Injection in DOM
- Cross-domain Access and Callback
- RSS & Atom Injection
- One-click Bomb
- Flash-based Cross Domain Access
- XSRF
Unit Testing
What is JsUnit?
Downloading and Installing JsUnit
Creating Test Pages and Test Functions
Assertion Functions
Test Page Example
setUp() and tearDown() Functions
Running a Test Using the TestRunner
Tracing
Test Suites
Mock Objects
What is Performance Tuning?
Factors that Affect Performance
- Database
- Page Startup Time
- Bandwidth
- Number of Requests
- Size of Requests
- Latency
- Caching
Reducing Page Startup Time
Bandwidth
Reducing Number of Requests By Concatenating JavaScript Files
Reducing Size of Requests by Removing White Space and Comments
Reducing Size of Responses using JSON
Reducing Size of Requests and Responses using Compression
Latency
Caching
- File System
- Memory
What is Profiling?
Profiling JavaScript Code Using Firebug
Identifying Performance Bottlenecks
What is a REST?
REST Example
Building a RESTful Server Side using Java
Consuming a REST Service from a Browser
Why use Web Service in the Server Side?
Consuming a Web service from the Browser
I18N
Usability Best Practices
Accessibility
Objectives
What is Web Syndication?
Syndication Example
Syndication Client
Web Syndication Benefits
Syndication Examples
Feed Formatting
RSS
RSS Example
Atom
Atom Example
Feed Serving and Reading Feeds
RDF
RDF Example
RDF Uses
Objectives
A Conceptual Look at Services
Defining Services
Service Communication Analogy
Three Key Service Questions
Connecting the Dots
SOA Runtime Implementation
What is a Web Service?
Enterprise Assets as Services
Typical Development Workflow
Advantages of Web Services
Web Service Business Models
Example: Internal System Integration
Example: Business Process Externalization
Binding via SOAP
SOAP in Protocol Stack
SOAP Structure
SOAP Message Architecture
Applying SOAP
Interface via WSDL
WSDL Structure
Applying WSDL
Locating a Service
UDDI Overview
UDDI Terminology
UDDI Structure
Applying UDDI
WS-I Overview
WS-I Deliverables
Summary
Objectives
Introduction
Key Characteristics
Instructor Demo
RIA Platforms
RIA Architecture
RIA Architecture Details
RIA Benefits
RIA Drawbacks
RIA Drawbacks (cont d)
RIA Best Practices
Summary
Objectives
Introduction
Example ChicagoCrime.org
Mashup Genres
Key Components
Key Component Details
Retrieving Data
Data Assembly Details
Data Format Options
Data Format Options (cont d)
Instructor Demo
Enterprise 2.0 Mashups
Summary
Objectives
Push Technology
Traditional vs. Push Technology
Problems With Traditional Pull
Example Use Of Push
The Comet Pattern
Comet Details
Comet Implementations
Scalability/Reliability Issues
Juggernaut for Ruby
Objectives
Rich Internet Applications
Server Dependency
Offline Applications
Google Gears
Google Gears Architecture
Dojo Offline
Adobe AIR
Objectives
Introducing Collaboration
Collaboration Benefits
Information Availability
Early Internet Collaboration
Modern Internet Collaboration
Internet Collaboration Limitations
Web 2.0 Collaboration
Web 2.0 Collab Principles
Blog
More Blog
Example Blog
Creating a Blog
Blog Setup Step One
Setting Up An Enterprise Blog
Blog Setup Step Two
Blog Setup Step Three
Posting Blog Entries
Instructor Demo
Wikis
Wiki Vandalism
Wiki Trustworthiness
Writing Wiki Content
The SLATES Components of Collaboration
Search
Links
Authoring
Tags
Instructor Demo
Extensions
Signals
Successful Knowledge Management Projects
Summary