javascript
play

JAVASCRIPT an d th e We b ! JAVASCRIPT popular scripting language - PowerPoint PPT Presentation

CS 498RK SPRING 2019 JAVASCRIPT an d th e We b ! JAVASCRIPT popular scripting language on the Web, supported by browsers separate scripting from structure (HTML) and presentation (CSS) client- and server-side programming object-oriented,


  1. CS 498RK SPRING 2019 JAVASCRIPT an d th e We b !

  2. JAVASCRIPT popular scripting language on the Web, supported by browsers separate scripting from structure (HTML) and presentation (CSS) client- and server-side programming object-oriented, imperative, functional

  3. HOW TO EMBED JS IN HTML Embed external file <script type=“text/javascript" src=“code.js”></script> Inline in HTML <script type="text/javascript"> <![CDATA[ Javascript goes here... ]]> everythin g insid e ignore d b y pa r se r </script>

  4. Revisitin g th e Do m

  5. DOM DOCUMENT OBJECT root node of HTML document selector properties/methods: document.body document.getElementById() document.getElementsByClassName() document.getElementsByTagName() www.w3schools.com/jsref/dom_obj_document.asp

  6. DOM ELEMENT OBJECT Element metadata: Node metadata: element.tagName element.nodeName element.className element.nodeType element.id element.nodeValue element.attributes element.innerHTML www.w3schools.com/jsref/dom_obj_all.asp

  7. DOM ELEMENT OBJECT properties for traversing the DOM tree: element.childNodes/element.children element.parentNode/element.parentElement element.previousSibling/element.previousElementSibling element.nextSibling/element.nextElementSibling www.w3schools.com/jsref/dom_obj_all.asp

  8. TRAVERSING THE DOM BODY var body = document.body; var div = body.children[0]; DIV var h3 = div.children[0]; var textNode = h3.childNodes[0]; H3 IMG var textString = textNode.nodeValue; “My first photo” www.w3schools.com/jsref/dom_obj_all.asp

  9. DOM ELEMENT OBJECT relative to offsetParent MARGIN BORDER position: element.offsetTop , PADDING element.scrollTop , … CONTENT dimensions: element.clientWidth , clientWidth element.offsetWidth , … style: element.style offsetWidth (includes scrollbar) www.w3schools.com/jsref/dom_obj_all.asp

  10. DOM MANIPULATION programmatically change the structure and modify element properties element.style.backgroundColor = “red”; element.innerHTML = “<div><h3>Llama!</h3>…</div>” augment DOM structure: element.appendChild() , element.removeChild() , … www.w3schools.com/jsref/dom_obj_all.asp

  11. Event s

  12. TYPES OF EVENTS User: mouse clicks, mouse moves, key presses Browser: page load/unload Network: responses to AJAX request Timer

  13. TIMER EVENTS setTimeout(fn, ms); calls function a fu er specified amount of time (ms) setInterval(fn, ms); calls function at specified intervals (ms) until clearInterval() or window is closed

  14. EVENT HANDLERS als o know n a s listene rs callback functions specify: what happened, where it happened, and how to handle it

  15. EVENT HANDLERS DOM LEVEL 0 <div onclick=“alert(‘Llama!’);”>...</div> In HTML DOM LEVEL 1 element.onclick = function(){alert(‘Llama!’);} In Javascript using the DOM

  16. EVENT HANDLERS DOM LEVEL 2 var el = document.getElementById(‘myButton'); el.addEventListener( 'click', function(){ alert(‘Llama!');}); supports multiple handlers per event

  17. THE BROWSER EVENT LOOP Parse HTML and create DOM USER BROWSER Check for events Event Queue NETWORK TIMER NO Event? single-threaded: events YES processed one at a time Process event

  18. EVENT OBJECT contains the information about the event HTML <div onclick=“mouseClick(event);”> DOM element.onclick = mouseClick; function mouseClick(event){…}; DOM (IE) function mouseClick(){… x = window.event.clientX; …};

  19. EVENT PROCESSING events propagate in two phases capture phase : root to innermost element bubble phase : innermost element to root DOM standard: capture then bubble

  20. EVENT PROCESSING element.addEventListener(event, function, useCapture) se t captur e o r bubbl e phas e event.stopPropogation() CODEPEN

  21. Even t Exampl e 1 CODEPEN

  22. Anonymou s Function s function animateIt(elementId, speed) { var elem = document.getElementById(elementId); tick = 0; var timer = setInterval(function() { if (tick <100) { elem.style.left = tick*speed + "px"; tick++; } else {clearInterval(timer);} }, 30); }

  23. Cl o sure s function animateIt(elementId, speed) { var elem = document.getElementById(elementId); tick = 0; var timer = setInterval(function() { if (tick <100) { elem.style.left = tick*speed + "px"; tick++; } else {clearInterval(timer);} }, 30); }

  24. Even t Exampl e 2 CODEPEN

  25. Classe s an d Mous e Event s function Dragger(id) { this.isMouseDown = false; this.element = document.getElementById(id); var obj = this; this.element.onmousedown = function(event) { obj.mouseDown(event);} } why obj instead of this?

  26. Classe s an d Mous e Event s Dragger.prototype.mouseDown = function(event) { var obj = this; this.oldMoveHandler = document.body.onmousemove; document.body.onmousemove = function(event) { obj.mouseMove(event);} this.oldUpHandler = document.body.onmouseup; document.body.onmouseup = function(event) { obj.mouseUp(event);} this.oldX = event.clientX; this.oldY = event.clientY; this.isMouseDown = true; why body? }

  27. Trouble s wit h Bro w se rs an d Othe r Quirk s

  28. BROWSERS stable APIs, but di ff erent implementations JavaScript libraries duplicate existing event handling and DOM APIs

  29. JQUERY cross-browser use for all DOM manipulation: ( e.g., positioning relative to document and not o ff setParent ) CODEPEN jquery.com

  30. dorey.github.io/JavaScript-Equality-Table/

  31. TIPS & TRICKS developers.google.com/speed/articles/ optimizing-javascript jonraasch.com/blog/10-javascript- performance-boosting-tips-from-nicholas- zakas

  32. NEXT CLASS: RESPONSIVE DESIGN courses.engr.illinois.edu/cs498rk1/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend