Javascript: Ajax & DOM Manipulation v1.2

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Javascript: Ajax & DOM Manipulation v1.2 - Presentation Transcript

    1. Matthew Batchelder
    2. Agenda
      • JavaScript: What it is and isn't
      • JavaScript: Uses
      • What is the DOM?
      • What is AJAX?
      • jQuery FTW!
        • Manipulating page elements (the DOM) in sweet ways
        • Simplified AJAX
        • Other Coolness
        • Pluggability
      • jQuery in myPlymouth
    3. Before We Start!
      • Important tools to have
        • Use Firefox
          • Firebug
          • JS Debugging FTW
          • Web Developer Toolbar (handy)
        • A sexy text editor (not notepad)
    4. JS: What it is and isn’t
      • NOT Java despite its name
      • ECMAScript
      • More than form validation
      • Client-Side Scripting Language
        • Dynamic
        • Weakly Typed
        • Object-Oriented (Prototype-Based)
      • DOM Event Tool
    5. JavaScript Sandbox
      • Scripts run in a “sandbox”
        • Can only perform web-related actions, not File-System actions
        • Constrained by a “Same Origin Policy”
    6. JS: Usage
      • Drop this puppy in your page:
      <html> <head> <title>Example JS Page</title> <script type=“text/javascript”> // javascript code goes here </script> </head> <body> … </body> </html>
    7. JS: Literals
      • Values (the stuff on the right of the equal sign) are literals.
      <script type=“text/javascript”> var myNumber = 123; var myString = ‘Bork!’; var myBoolean = true; var myFunction = function(){ return ‘hello’;} var myRegExp = /bork/gi; var myArray = [1, 2, 3]; var myCarObject = { color: ‘red’, tires: 4, windows: 6 } </script>
    8. JS: Objects
      • Everything in JS is an Object
        • All literals are object literals .
      • Those literals can be written:
      <script type=“text/javascript”> var myNumber = new Number(123); var myString = new String(‘Bork!’); var myBoolean = new Boolean(true); var myFunction = new Function(‘’, “return ‘hello’”);} var myRegExp = new RegExp(‘bork’); var myArray = new Array(); myArray[0] = 1; myArray[1] = 2; myArray[2] = 3; var myCarObject = new Object(); myCarObject.color = ‘red’; myCarObject.tires = 4; myCarObject.windows = 6; </script>
    9. JS: Objects
      • Objects values are accessed using dot (“.”) notation:
      • example
      <html> <head> <title>Examples</title> <script type=&quot;text/javascript&quot;> var bork = 'Bork!'; var w00t = { hello: 'Greetings', yo: function(){ alert(bork + ' ' + this.hello); } }; var zomg = { nested: { iMeanReallyNested: { seriously: { out: function(){ alert('whee!'); } } } } }; w00t.yo(); zomg.nested.iMeanReallyNested.seriously.out(); </script> </head> <body> ... </body> </html>
    10. JS: Control Structures if (bork) { //... } else { //... } while (bork) { //... } for (var i = 0; i< 10; i++) { //... } for (var element in array_of_elements) { //... } do { //... } while (bork); switch (bork) { case 1: // if bork == 1... case 'whee': // if bork == 'whee'... case false: // if bork == false... default : // otherwise ... } try { //... } catch (err) { //... }
    11. What is the DOM?
      • DOM == Document Object Model
      • The DOM is hierarchical
      <html> <head> <title>Example JS Page</title> </head> <body> <form id=“some_form”> <input type=“text” name=“bork”/> <input type=“submit” value=“Go”/> </form> </body> </html>
    12. Finding DOM Elements
      • document.getElementById()
        • returns a specific element
      • document.getElementByTag()
        • returns an array of elements
    13. DOM Element Attributes
      • nodeName
      • nodeValue
      • nodeType
      • parentNode
      • childNodes
      • firstChild
      • lastChild
      • previousSibling
      • nextSibling
      • attributes
      • ownerDocument
      • 1 = an HTML element
      • 2 = an element attribute
      • 3 = text
      • 8 = an HTML comment
      • 9 = a document
      • 10 = a document type definition
      DOM Attributes Node Types Here’s a good article that uses these.
    14. Manipulating the DOM
      • Dynamically creating and adding elements
        • document.createElement
        • appendChild
      • example
    15. innerHTML
      • Why go through the trouble of creating Nodes?
      • More efficient
      • Easier
      • example
    16. Events
      • Click
      • Dblclick
      • Mousedown
      • Mouseup
      • Mouseover
      • Mousemove
      • Mouseout
      • Keypress
      • Keydown
      • Keyup
      • Select
      • Change
      • Submit
      • Reset
      • Focus
      • Blur
      • Load
      • Unload
      • Abort
      • Error
      • Resize
      • Scroll
      Mouse Keyboard Frame/Object Form
    17. Simple Alert Box <html> <head> <title>Example Message Box Page</title> <script type=“text/javascript”> alert(‘I like butter’); </script> </head> <body> … </body> </html>
    18. Confirm Box Bound to an Event <html> <head> <title>Example Message Box Page</title> <script type=&quot;text/javascript&quot;> function doLoad() { document.getElementById('sweet-link').addEventListener(‘click’, confirmClick, false); }//end doLoad function confirmClick() { return confirm(‘Are you sure you wish to go to that link?’); }//end confirmClick window.addEventListener(‘load’, doLoad, false); </script> </head> <body> <a id=&quot;sweet-link&quot; href=&quot;http://borkweb.com&quot;>BorkWeb</a> </body> </html> example
    19. Hiding/Displaying Elements
      • Element visibility is a nice use of events and DOM manipulation
      • example
    20. AJAX
      • AJAX (Asychronous Javascript and XML)
      • Gives you the ability to load content dynamically !
        • Loading content on demand
        • Possible usability Issues
        • Possible performance problems and benefits
      • Limitation : No AJAX calls beyond the sandbox.
        • Note: The way around this is with XSS (Cross Site Scripting)…which can be dangerous if done poorly.
    21. Ajax: XMLHttpRequest
      • Loading content on demand:
      <script type=&quot;text/javascript&quot;> function ajax(url, vars, callbackFunction){ var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(&quot;MSXML2.XMLHTTP.3.0&quot;); request.open(&quot;GET&quot;, url, true); request.setRequestHeader(&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;); request.onreadystatechange = function(){ if (request.readyState == 4 && request.status == 200){ if (request.responseText){ callbackFunction(request.responseText); } } }; request.send(vars); }//end ajax function out(text){ document.getElementById('content').innerHTML = text; }//end out function ajaxCall(){ ajax('http://borkweb.com/examples/js_workshop/dynamic_content1.html','',out);return false; }//end ajaxCall function doLoad(){ document.getElementById('sweet-link').addEventListener('click', ajaxCall, false); }//doLoad window.addEventListener('load', doLoad, false); </script>
      • example
    22. Things can actually be a bit easier. How much? Well most of the above.
    23. jQuery. That’s what we use on campus. It is awesome.
    24. What is jQuery?
      • jQuery is a sweet JavaScript Library
        • Its Mantra: Find stuff and do stuff with it
        • Focuses on simplicity
      • Get it here
      • Check out the docs
    25. Finding Elements
      • Say goodbye to document.getElementById() and document.getElementByTag()
      • Say hello to: $()
        • Uses CSS Selectors to find elements and returns them as an array of elements.
    26. Finding Elements With $ $(‘a’) $(‘.class’) $(‘#id’) $(‘.content div’) $(‘input[name=bork]’) $(‘input:first’) Here’s an example . Check out the selector syntax for more info.
    27. Lets do some of the stuff we already did…
      • Adding Text Fields
      • Toggling Element Visibility
      • Ajax Content
    28. jQuery Coolness
      • Browser data
        • $.browser
      • Effects
        • Sliding
        • Fading
        • Animating
      • Chaining
        • $(‘a’).click(function(){alert(‘hello’); return false;}).css(‘font-weight’,’bold’).fadeOut(‘slow’);
    29. jQuery Plugins
      • Pluggable! Additional jQuery functionality added by including jQuery plugins .
    30. jQuery in myPlymouth
      • Go Sidebar
      • Bookmarks
      • Tab Stack
      • Etc…
      • Check out the source .
    31. Resources: Slide Examples , jQuery , Image Sprites , Mega Man !

    + borkwebborkweb, 11 months ago

    custom

    3006 views, 1 favs, 2 embeds more stats

    This is just a slight revamp of my previous slide o more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3006
      • 2554 on SlideShare
      • 452 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 84
    Most viewed embeds
    • 450 views on http://borkweb.com
    • 2 views on http://static.slideshare.net

    more

    All embeds
    • 450 views on http://borkweb.com
    • 2 views on http://static.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories