DOM Event Propagation,Three types of event listeners:DOM Event Propagation,Three types of event listeners:Capturing: Listener on ancestor created with trueas third arg.DOM Event Propagation,Three types of event listeners:Target: Listener on target element
16DOM Event Propagation,Three types of event listeners:Bubbling: Listener on ancestor created with falseas third arg.DOM Event Propagation,Priority of event handlers:bodyollia1.Capturing eventhandlers; ancestorsclosest to roothave highest priorityTargetDOM Event Propagation,Priority of event handlers:bodyollia2. Target event handlersDOM Event Propagation,Priority of event handlers:bodyollia3. Bubbling eventhandlers; ancestorsclosest to target havepriority.
17DOM Event Propagation,Certain events do not bubble, e.g.,–load–unload–focus–blurDOM Event Propagation,Propagation-related propertiesof Eventinstances:–eventPhase: represents event processing phase:,1: capturing (rarely used, not default for event handlers),2: target,3: bubbling–currentTarget: object (ancestor or target) associated with this event handlerDOM Event Propagation,Propagation-related method of Eventinstances:–stopPropagation(): lower priority event handlers will not be called,Typical design:–Use bubblingevent handlers to provide defaultprocessing (may be stopped)–Use capturingevent handlers to provide requiredprocessing Event Propagation
18AJAXAsynchronous Javascript And XmlAJAX: Normal Request Response LoopAJAX: The ProblemAJAX: The Solution
19AJAX and Events,Various ways to program with AJAX,Some frameworks (like jQuery) provide templates to simplify most common uses,In “pure” JavaScript, the steps are basically as follows–Create an HTTP Request object that will ultimately make the request for a document–Register event handlers for various events, mostly onreadystatechange–Send HTTP request–When document is received, events are triggered, resulting in appropriate callbacksto be called–Callback functions have access to returned document (originally an XML document) programmatically (another DOM) and can parse it, extracting the requested info–Callback functions dynamically make change to current documentSimple AJAX Examplefunction loadDoc() {varxhttp= new XMLHttpRequest();xhttp.onreadystatechange= function() {if (this.readyState== 4 && this.status== 200) {document.getElementById("demo").innerHTML= this.responseText;}};xhttp.open("GET", "ajax_info.txt", true);xhttp.send();}