Writing with YUI. Doug Bell Developer / Janitor
|
|
- Evan Dean
- 5 years ago
- Views:
Transcription
1 Writing with YUI Doug Bell Developer / Janitor doug@plainblack.com
2 JavaScript An Epic Tale Interface with Java Applets Has been standardized (EMCAScript) Annoying features being avoided / disabled Featureful, Intuitive, Dynamic User Interfaces Break out of Stagnant Static Sites From Harmful To Helpful
3 JavaScript An Epic Tale Programmer s Perspective JavaScript Sucks in Web Browsers Non-standard Implementations Different behaviors between standard implementations Some simple tasks are made difficult Into the gap: JavaScript Libraries
4 Which One? Dojo, Prototype, Scriptaculous, jquery October Community weighs in Consensus: Yahoo User Interface (YUI)
5 Why YUI? Free as in Speech Free as in Beer Backed by Yahoo Well-Supported Well-defined Levels of Support (Graded Support) Fully-featured API Extensible API Well-Documented
6 What is YUI? A satellite view
7 YUI Components YUI Core Base of the system DOM and Event handling Normalization Utilities Components to build applications Connection Manager for XmlHttpRequest (aka AJAX) Animation and Drag and Drop
8 YUI Components Controls / Widgets AutoComplete Calendar, Color Picker, Rich Text Editor, Slider TabView CSS Tools Reset Base Font Grids TreeView
9 In this Session YUI Core DOM Event Animation Connection We ll create a functional, if a bit silly, Asset...
10 Shoutbox Users can chat real-time on your website
11 Shoutbox Under the hood Default view Handles the normal view of the asset Creates the form for input JSON view Gets the asset s information in JSON Will be very useful later on
12 YUI + DOM Chocolate + Peanut Butter
13 Before HTML in the template Useful but not re-useful Let s make something New!
14 Before <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if> <tmpl_var form_start> From: <tmpl_var form_from><br/> Text: <tmpl_var form_bodytext> <tmpl_var form_submit> <tmpl_var form_end> </div>
15 Before <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if> <tmpl_var form_start> From: <tmpl_var form_from><br/> Text: <tmpl_var form_bodytext> <tmpl_var form_submit> <tmpl_var form_end> </div>
16 Before <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if> <tmpl_var form_start> From: <tmpl_var form_from><br/> Text: <tmpl_var form_bodytext> <tmpl_var form_submit> <tmpl_var form_end> </div>
17 Before <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if> <tmpl_var form_start> From: <tmpl_var form_from><br/> Text: <tmpl_var form_bodytext> <tmpl_var form_submit> <tmpl_var form_end> </div>
18 Our Task Replace the loop generating the chat with a JavaScript one Reuse our new function Good practice when interacting with content Pretext to show off YUI DOM functions flimsy
19 Beginning Our App Some rules to live by Document, Document, Document <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site ******************************************************/
20 Beginning Our App Some rules to live by Use Namespaces to keep away from overlap <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object!
21 Beginning Our App Some rules to live by Document, Document, Document * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object! /******************************************************* * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */
22 Beginning Our App Import YUI All of YUI requires yahoo.js <script type= text/javascript src= ^Extras(yui/build/yahoo/yahoo-min.js); ></script> <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object!
23 Beginning Our App Import YUI We want dom.js <script type= text/javascript src= ^Extras(yui/build/yahoo/yahoo-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/dom/dom-min.js); ></script> <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object!
24 Beginning Our App addchatrow Adds a row to the list <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if>
25 Beginning Our App addchatrow Adds a row to the list <div id="shoutbox"> <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if>
26 Beginning Our App addchatrow /******************************************************* * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */ Shoutbox.addChatRow = function (timestamp, from, bodytext) { var sb = document.getelementbyid("shoutbox"); var ul = sb.getelementsbytagname("ul")[0]; // Nicely format our date timestamp = new Date(timestamp).toLocaleString(); // Create new DOM nodes for our chat
27 Beginning Our App addchatrow /******************************************************* * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */ Shoutbox.addChatRow = function (timestamp, from, bodytext) { var sb = document.getelementbyid("shoutbox"); var ul = sb.getelementsbytagname("ul")[0]; // Nicely format our date timestamp = new Date(timestamp).toLocaleString(); // Create new DOM nodes for our chat
28 Beginning Our App addchatrow /******************************************************* * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */ Shoutbox.addChatRow = function (timestamp, from, bodytext) { var sb = document.getelementbyid("shoutbox"); var ul = sb.getelementsbytagname("ul")[0]; // Nicely format our date var tsdate = new Date(timestamp).toLocaleString(); // Create new DOM nodes for our chat
29 Our First Yahoo addchatrow // Create new DOM nodes for our chat list var spantimestamp = document.createelement("span"); YAHOO.util.Dom.addClass(spanTimestamp, "timestamp"); spantimestamp.appendchild( document.createtextnode(timestamp) ); var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); li.appendchild( document.createtextnode(" - ") );
30 Our First Yahoo addchatrow // Create new DOM nodes for our chat var spantimestamp = document.createelement("span"); YAHOO.util.Dom.addClass(spanTimestamp, "timestamp"); spantimestamp.appendchild( document.createtextnode(timestamp) ); YAHOO.util.Dom.addClass( id element, class ); Exists because of browser compatibility issues with setting element.classname or using element.setattribute( class, classname );
31 Our First Yahoo addchatrow // Create new DOM nodes for our chat list var spantimestamp = document.createelement("span"); YAHOO.util.Dom.addClass(spanTimestamp, "timestamp"); spantimestamp.appendchild( document.createtextnode(timestamp) ); var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); li.appendchild( document.createtextnode(" - ") );
32 Our First Yahoo addchatrow // Create new DOM nodes for our chat list var spantimestamp = document.createelement("span"); YAHOO.util.Dom.addClass(spanTimestamp, "timestamp"); spantimestamp.appendchild( document.createtextnode(timestamp) ); var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); li.appendchild( document.createtextnode(" - ") );
33 Our First Yahoo addchatrow var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); YAHOO.util.Dom.setStyle( id element, property, value ); Exists because of browser compatibility issues with setting element.style or element.setattribute()
34 Our First Yahoo addchatrow var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); li.appendchild( document.createtextnode(" - ") ); li.appendchild( spanfrom ); li.appendchild( document.createtextnode(": ") ); li.appendchild( document.createtextnode(bodytext) ); ul.appendchild(li); };
35 Our First Yahoo addchatrow var spanfrom = document.createelement("span"); YAHOO.util.Dom.setStyle(spanFrom, "font-weight", "bold"); spanfrom.appendchild( document.createtextnode(from) ); var li = document.createelement("li"); li.appendchild( spantimestamp ); li.appendchild( document.createtextnode(" - ") ); li.appendchild( spanfrom ); li.appendchild( document.createtextnode(": ") ); li.appendchild( document.createtextnode(bodytext) ); ul.appendchild(li); };
36 Our First Yahoo Replace our HTML Test our code One Way to Do It means One Code to Edit <tmpl_if chat><ul> <tmpl_loop chat><li> <span class="timestamp"> ^D("%z %Z",<tmpl_var timestamp>); </span> - <span class="from"><tmpl_var from></span>: <tmpl_var bodytext> </li></tmpl_loop> </ul></tmpl_if>
37 Our First Yahoo Replace our HTML Test our code One Way to Do It means One Code to Edit <tmpl_if chat><ul></ul> <script type= text/javascript > <tmpl_loop chat> Shoutbox.addChatRow( <tmpl_var timestamp>, <tmpl_var from escape= JS >, <tmpl_var bodytext escape= JS > ); </tmpl_loop> </script></tmpl_if>
38 DOM and DOMer Get the size of the viewport Different browsers, different ways YAHOO.util.Dom.getViewportWidth() YAHOO.util.Dom.getViewportHeight() Get and Set an elements position Difficult when other styles get in the way getx(el), gety(el), getxy(el) setx(el), sety(el), setxy(el)
39 The Result Looks the same But that s what we wanted Let s do something Interesting!
40 Events Johnny 5 need input
41 Show and Hide Add a title bar Click to toggle
42 Show and Hide Add a title bar Click to toggle <div id="shoutbox"> <a href="#" class="title">shoutbox</a> <tmpl_if chat><ul></ul> <script type= text/javascript > <tmpl_loop chat> Shoutbox.addChatRow( <tmpl_var timestamp>, <tmpl_var from escape= JS >, Where s the onclick=?
43 YUI Event Add and remove event listeners YAHOO.util.Event.addListener( id element, event, callbackfunction ); click, mouseover, mouseout submit, load
44 YUI Event Custom Events YAHOO.util.Event.onContentReady( id element, callbackfunction ); Calls the callbackfunction when the specified element AND its next sibling is available in the DOM Element is safe to modify in all browsers
45 Add an Event Setting up Import YUI Event <script type= text/javascript src= ^Extras(yui/build/yahoo/yahoo-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/dom/dom-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/event/event-min.js); ></script> <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site ******************************************************/
46 Add an Event Setting up Save state * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object! Shoutbox.opened = 1; // Keep track if the shoutbox is open /****************************************************** * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */
47 Add an Event Create event handler to toggle that state Document, document, document /****************************************************** * Shoutbox.eventToggleView ( event ) * Event handler to toggle the shoutbox open or closed. */ Shoutbox.eventToggleView = function (event) { if (Shoutbox.opened) { YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1;
48 Add an Event Create event handler to toggle that state Event handlers have one required argument /****************************************************** * Shoutbox.eventToggleView ( event ) * Event handler to toggle the shoutbox open or closed. */ Shoutbox.eventToggleView = function (event) { if (Shoutbox.opened) { YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1;
49 Add an Event Create event handler to toggle that state If it s opened, close it /****************************************************** * Shoutbox.eventToggleView ( event ) * Event handler to toggle the shoutbox open or closed. */ Shoutbox.eventToggleView = function (event) { if (Shoutbox.opened) { YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1;
50 Add an Event Create event handler to toggle that state If it s closed, open it YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1; } YAHOO.util.Event.preventDefault(event); };
51 Add an Event Create event handler to toggle that state Stop the default action (href= # ) YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1; } YAHOO.util.Event.preventDefault(event); };
52 Add an Event Add a listener to call the toggle method Must be added after the entire shoutbox is loaded oncontentready() Create an event handler that will add the listener when the oncontentready event happens
53 Add an Event Add a listener to call the toggle method Create an initialization method /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0]; YAHOO.util.Event.addListener( title, 'click', Shoutbox.eventToggleView
54 Add an Event Add a listener to call the toggle method Create an initialization method // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0]; YAHOO.util.Event.addListener( title, 'click', Shoutbox.eventToggleView ); };
55 Add an Event Add a listener to call the toggle method Call the initializer when ready YAHOO.util.Event.addListener( title, 'click', Shoutbox.eventToggleView ); }; // Run the initializer when our shoutbox is safe to modify YAHOO.util.Event.onContentReady( 'shoutbox', Shoutbox.init );
56 Add an Event Additional benefits of oncontentready handlers Progressive Enhancement
57 Add an Event Additional benefits of oncontentready handlers Configurable state * Shoutbox - User chat on your site ******************************************************/ // Create a "namespace" to hold our functions var Shoutbox = {}; // Just a blank object! Shoutbox.opened = 1; // Keep track if the shoutbox is open /****************************************************** * Shoutbox.addChatRow ( timestamp, from, bodytext ) * Adds a row to the chat box. timestamp, from, and * bodytext are directly from the Shoutbox asset */
58 Add an Event Additional benefits of oncontentready handlers Change initial state based on configuration /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Set the initial state if (Shoutbox.opened) { YAHOO.util.Dom.setStyle(shoutbox,'height','260px'); } else { YAHOO.util.Dom.setStyle(shoutbox,'height','30px');
59 Add an Event Additional benefits of oncontentready handlers Change initial state based on configuration // Set the initial state if (Shoutbox.opened) { YAHOO.util.Dom.setStyle(shoutbox,'height','260px'); } else { YAHOO.util.Dom.setStyle(shoutbox,'height','30px'); // height + padding of title } // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0];
60 More Event YAHOO.util.Event.onDOMReady() Like oncontentready, but for when the entire DOM has been parsed. Happens after window load. Better than onload because of browser bugs
61 More Event Automatic addlistener deferral When using an ID, waits until the element is ready (like oncontentready) Browser quirk handling No need to check window.event The event s affected element is always correct
62 Results When the title is clicked, the shoutbox opens or closes Shoutbox.opened in the source now sets the default state. Oh yes. It can have more awesome
63 Animation New powers for making Awesome
64 Adding Animation Easier than you might think
65 Adding Animation Easier than you might think We already have the setup Shoutbox.eventToggleView = function (event) { if (Shoutbox.opened) { YAHOO.util.Dom.setStyle('shoutbox','height','30px'); // height + padding of title Shoutbox.opened = 0; } else { YAHOO.util.Dom.setStyle('shoutbox','height','260px'); Shoutbox.opened = 1; } YAHOO.util.Event.preventDefault(event); };
66 Adding Animation Easier than you might think Load the Animation component src= ^Extras(yui/build/yahoo/yahoo-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/dom/dom-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/event/event-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/animation/animation-min.js); > </script> <script type="text/javascript"> /******************************************************* * Shoutbox - User chat on your site
67 Adding Animation Easier than you might think Alter the eventtoggleview to use Animation Shoutbox.eventToggleView = function (event) { Shoutbox.animation = new YAHOO.util.Anim('shoutbox'); Shoutbox.animation.duration = 1; if (Shoutbox.opened) { Shoutbox.animation.attributes.height = { to: 30 }; Shoutbox.animation.method = YAHOO.util.Easing.bounceOut; Shoutbox.opened = 0; } else { Shoutbox.animation.attributes.height = { to: 260 }; Shoutbox.animation.method =
68 Adding Animation Easier than you might think Alter the eventtoggleview to use Animation YAHOO.util.Easing.bounceOut; Shoutbox.opened = 0; } else { Shoutbox.animation.attributes.height = { to: 260 }; Shoutbox.animation.method = YAHOO.util.Easing.elasticOut; Shoutbox.opened = 1; } Shoutbox.animation.animate(); YAHOO.util.Event.preventDefault(event); };
69 Other Methods YAHOO.util.Easing.bounceOut easenone Steady velocity easein / easeout Smooth velocity change backin / backout Pulling a window shade bouncein / Out Bounce Bounce Bounce elasticin / Out Pull and snap easeboth Both easein and easeout
70 More Animation Make your own Easing methods Move an element along a path YAHOO.util.Motion Animate Colors YAHOO.util.ColorAnim Scroll elements YAHOO.util.Scroll
71 Result That s darn cool, but it isn t very useful.
72 Connection XmlHttpRequest (AJAX) The best thing to happen to WWW since Netscape
73 What is AJAX? More than a buzzword
74 What is AJAX? More than a buzzword Dynamic interaction between server and user Without expensive page loads In the background (no leaving the screen) Build functional, responsive user interfaces What JavaScript is all about
75 Adding some AJAX Get Shoutbox content through AJAX Import the Connection component src= ^Extras(yui/build/yahoo/yahoo-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/dom/dom-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/event/event-min.js); ></script> <script type= text/javascript src= ^Extras(yui/build/animation/animation-min.js); > </script> <script type= text/javascript src= ^Extras(yui/build/connection/connection-min.js); > </script> <script type="text/javascript">
76 Adding some AJAX Get Shoutbox content through AJAX Create a method to request an update Use our?func=json asset page JSON is easy to manipulate using JavaScript who knew?
77 Adding some AJAX Get Shoutbox content through AJAX Create a method to request an update /****************************************************** * Shoutbox.requestUpdate ( ) * Submit the async request to update our shoutbox */ Shoutbox.requestUpdate = function () { var callback = { success: function (o) { // Remove all old chat and replace with new removeallchildren("shoutbox"); responseobj = eval("(" + o.responsetext + ")"); for (var i in responseobj.chat) { var row = responseobj.chat[i]; Shoutbox.addChatRow(row.timestamp, row.from,
78 Adding some AJAX Get Shoutbox content through AJAX Create a method to request an update var callback = { success: function (o) { // Remove all old chat and replace with new removeallchildren("shoutbox"); responseobj = eval("(" + o.responsetext + ")"); for (var i in responseobj.chat) { var row = responseobj.chat[i]; Shoutbox.addChatRow(row.timestamp, row.from, row.bodytext); } }, failure: function (o) { alert("update failed! Please try again.");
79 Adding some AJAX Get Shoutbox content through AJAX Create a method to request an update for (var i in responseobj.chat) { var row = responseobj.chat[i]; Shoutbox.addChatRow(row.timestamp, row.from, row.bodytext); } }, failure: function (o) { alert("update failed! Please try again."); } } YAHOO.util.Connect.asyncRequest('GET', Shoutbox.url + '? func=json', callback);
80 Adding some AJAX Get Shoutbox content through AJAX Create a method to request an update row.bodytext); } }, failure: function (o) { alert("update failed! Please try again."); } } YAHOO.util.Connect.asyncRequest('GET', Shoutbox.url + '? func=json', callback); }; /****************************************************
81 Adding some AJAX Get Shoutbox content through AJAX Where did we get Shoutbox.url? WebGUI doesn t process Head Block Set the right URL in the Template <script type="text/javascript"> // Can't get the template var inside Head Block Shoutbox.url = '<tmpl_var url escape="js">'; </script> <div id="shoutbox">
82 Adding some AJAX Get Shoutbox content through AJAX Where did we get removeallchildren()? A function useful when replacing elements /****************************************************** * removeallchildren(nodeid) * Utility to remove all children from an element */ function removeallchildren(nodeid) { var node = document.getelementbyid(nodeid); if (node && node.childnodes && node.removechild) { while (node.haschildnodes()) node.removechild(node.firstchild); } }
83 Adding some AJAX Get Shoutbox content through AJAX Call the method during initialization /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Get the content for our shoutbox Shoutbox.requestUpdate(); // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0];
84 Adding some AJAX Get Shoutbox content through AJAX Clear out our old method <tmpl_if chat><ul></ul> <script type= text/javascript > <tmpl_loop chat> Shoutbox.addChatRow( <tmpl_var timestamp>, <tmpl_var from escape= JS >, <tmpl_var bodytext escape= JS > ); </tmpl_loop> </script></tmpl_if>
85 Adding some AJAX Get Shoutbox content through AJAX Clear out our old method <div id="shoutbox"> <a href="#" class="title"> Shoutbox </a> <ul><li></li></ul> <tmpl_var form_start> From: <tmpl_var form_from><br/> Empty container remains as placeholder
86 Result Like earlier, the functionality is the same... Foundation laid for enhanced functionality
87 Background AJAX Periodically request an update from the server That s what asynchronous is all about No expensive page loads Build the layout once, show multiple types of content User interaction to pull only the content they want
88 Periodic Update Add a method to maintain period /****************************************************** * Shoutbox.doAutoUpdate ( ) * Start the timer to auto update the shoutbox. Request an * update if the shoutbox is opened. */ Shoutbox.doAutoUpdate = function () { // Start another timeout to keep the chain going Shoutbox.updateTimeout = settimeout(shoutbox.doautoupdate, 4000); if (!Shoutbox.opened) { return; }
89 Periodic Update Add a method to maintain period First call starts, subsequent calls maintain Shoutbox.doAutoUpdate = function () { // Start another timeout to keep the chain going Shoutbox.updateTimeout = settimeout(shoutbox.doautoupdate, 4000); if (!Shoutbox.opened) { return; } else { Shoutbox.requestUpdate(); } };
90 Periodic Update Add a method to maintain period Use our saved state Shoutbox.doAutoUpdate = function () { // Start another timeout to keep the chain going Shoutbox.updateTimeout = settimeout(shoutbox.doautoupdate, 4000); if (!Shoutbox.opened) { return; } else { Shoutbox.requestUpdate(); } };
91 Periodic Update Add a method to maintain period Kick off the festivities return; } else { Shoutbox.requestUpdate(); } }; // Start the timer when the Shoutbox is ready YAHOO.util.Event.onContentReady( 'shoutbox', Shoutbox.doAutoUpdate );
92 Periodic Update Add a method to maintain period Clean up after thyself /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Get the content for our shoutbox Shoutbox.requestUpdate(); // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0];
93 Periodic Update Add a method to maintain period Clean up after thyself /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Add an onclick handler to the first title var title = YAHOO.util.Dom.getElementsByClassName ('title',undefined, shoutbox)[0]; YAHOO.util.Event.addListener(title, 'click', Shoutbox.eventToggleView);
94 Result As new rows are added to the Shoutbox, we get updated without having to do anything Keep track of the conversation without leaving the page
95 Asynchronous Forms As much awesome as one should ingest in a single sitting Process a form without leaving the page YUI makes it easy!
96 Asynchronous Forms Make an event handler that sends an AJAX request /****************************************************** * Shoutbox.handleSubmit ( event ) * Handle the shoutbox form submit. Submit the form and * refresh the data. */ Shoutbox.handleSubmit = function (e) { // Stop the browser from handling the submit YAHOO.util.Event.preventDefault(e); var shoutbox = document.getelementbyid('shoutbox'); var form = shoutbox.getelementsbytagname("form")[0]; // Get the form and send the data off var shoutbox = document.getelementbyid('shoutbox'); var form = shoutbox.getelementsbytagname("form")[0];
97 Asynchronous Forms Make an event handler that sends an AJAX request Shoutbox.handleSubmit = function (e) { // Stop the browser from handling the submit YAHOO.util.Event.preventDefault(e); // Get the form and send the data off var shoutbox = document.getelementbyid('shoutbox'); var form = shoutbox.getelementsbytagname("form")[0]; YAHOO.util.Connect.setForm(form); var callback = { success: function (o) { // Clear the form form.bodytext.value = ""; if (form.from && form.from.value) { form.from.value = "";
98 Asynchronous Forms Make an event handler that sends an AJAX request Shoutbox.handleSubmit = function (e) { // Stop the browser from handling the submit YAHOO.util.Event.preventDefault(e); // Get the form and send the data off var shoutbox = document.getelementbyid('shoutbox'); var form = shoutbox.getelementsbytagname("form")[0]; YAHOO.util.Connect.setForm(form); var callback = { success: function (o) { // Clear the form form.bodytext.value = ""; if (form.from && form.from.value) { form.from.value = "";
99 Asynchronous Forms Make an event handler that sends an AJAX request var callback = { success: function (o) { // Clear the form form.bodytext.value = ""; if (form.from && form.from.value) { form.from.value = ""; } Shoutbox.requestUpdate(); }, failure: function (o) { alert("failed to submit! Try again!"); } };
100 Asynchronous Forms Make an event handler that sends an AJAX request failure: function (o) { alert("failed to submit! Try again!"); } }; YAHOO.util.Connect.asyncRequest( "POST", Shoutbox.url, callback ); };
101 Asynchronous Forms Attach the event handler to the form /****************************************************** * Shoutbox.init ( ) * Initialize the shoutbox */ Shoutbox.init = function () { var shoutbox = document.getelementbyid('shoutbox'); // Add an onsubmit handler to the form var form = shoutbox.getelementsbytagname("form")[0]; YAHOO.util.Event.addListener( form, 'submit', Shoutbox.handleSubmit ); // Set the initial state All done without touching our HTML!
102 More Connection Set a timeout The timeout property of the callback object Asynchronous file upload Will Just Work(tm) More custom events start, complete, success, failure, more...
103 More Connection Transaction state YAHOO.util.Connect.asyncRequest() returns an object Store it and check its status Stop running requests until the first is done Abort a running request
104 Result Whatever page our Shoutbox may be on we will be able to chat without leaving our page AssetProxy, Page Layout, Folder
105 Wrapping Up You ve Come a Long Way, Baby
106 Summary YUI DOM Component Handles DOM incompatibilities between browsers YUI Event Component Handles Event incompatibilities between browsers More efficient / intuitive interface to events
107 Summary YUI Animation Component Flashy special effects Improve the user experience YUI Connection Component AJAX (XmlHttpRequest) A magical world of usability
108 After YUI Documentation Current version used by your WebGUI Latest version released by Yahoo
109 More Resources Resources on browser compatibilities and capabilities Firebug - JavaScript, CSS, HTML debugging tool
110 Questions?
E ECMAScript, 21 elements collection, HTML, 30 31, 31. Index 161
A element, 108 accessing objects within HTML, using JavaScript, 27 28, 28 activatediv()/deactivatediv(), 114 115, 115 ActiveXObject, AJAX and, 132, 140 adding information to page dynamically, 30, 30,
More informationUser Interaction: jquery
User Interaction: jquery Assoc. Professor Donald J. Patterson INF 133 Fall 2012 1 jquery A JavaScript Library Cross-browser Free (beer & speech) It supports manipulating HTML elements (DOM) animations
More informationCourse Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL:
Specialized - Mastering jquery Code: Lengt h: URL: TT4665 4 days View Online Mastering jquery provides an introduction to and experience working with the JavaScript programming language in the environment
More informationWeb applications Developing Android/Iphone Applications using WebGUI
Web applications Developing Android/Iphone Applications using WebGUI Joeri de Bruin Oqapi Software joeri@oqapi.nl 1 Overview Web applications Create WebApp with WebGUI Turn WebApp into native mobile app
More informationTooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.
Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3
More informationUI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML
UI Course (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) HTML: Introduction The World Wide Web (WWW) and history of HTML Hypertext and Hypertext Markup Language Why HTML Prerequisites Objective
More informationAJAX Programming Chris Seddon
AJAX Programming Chris Seddon seddon-software@keme.co.uk 2000-12 CRS Enterprises Ltd 1 2000-12 CRS Enterprises Ltd 2 What is Ajax? "Asynchronous JavaScript and XML" Originally described in 2005 by Jesse
More informationHTML5. HTML5 Introduction. Form Input Types. Semantic Elements. Form Attributes. Form Elements. Month Number Range Search Tel Url Time Week
WEB DESIGNING HTML HTML - Introduction HTML - Elements HTML - Tags HTML - Text HTML - Formatting HTML - Pre HTML - Attributes HTML - Font HTML - Text Links HTML - Comments HTML - Lists HTML - Images HTML
More informationv0.9.3 Tim Neil Director, Application Platform & Tools Product
v0.9.3 Tim Neil Director, Application Platform & Tools Product Management @brcewane Framework Goals Incubation project to experiment with HTML5 UI Contribute learning's to jquerymobile, Sencha, Dojo Provides
More informationDesigning RIA Accessibility: A Yahoo UI (YUI) Menu Case Study
Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Doug Geoffray & Todd Kloots 1 Capacity Building Institute Seattle, Washington 2006.11.30 What s Happening? 2 3 Web 1.0 vs. Web 2.0 Rich Internet
More informationIndex LICENSED PRODUCT NOT FOR RESALE
Index LICENSED PRODUCT NOT FOR RESALE A Absolute positioning, 100 102 with multi-columns, 101 Accelerometer, 263 Access data, 225 227 Adding elements, 209 211 to display, 210 Animated boxes creation using
More informationHow to Build a Site Style. WebGUI LIVE!
How to Build a Site Style WebGUI LIVE! Where do we start? Create a design Turn it into HTML & graphics Introduce WebGUI Components Putting it all together A Closer Look Creating a Design The Big Question...
More informationWeb Development & Design Foundations with HTML5
1 Web Development & Design Foundations with HTML5 CHAPTER 14 A BRIEF LOOK AT JAVASCRIPT Copyright Terry Felke-Morris 2 Learning Outcomes In this chapter, you will learn how to: Describe common uses of
More informationModule 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains an Individual and Group component
Module 5 JavaScript, AJAX, and jquery Module 5 Contains an Individual and Group component Both are due on Wednesday October 24 th Start early on this module One of the most time consuming modules in the
More information8/19/2018. Web Development & Design Foundations with HTML5. Learning Objectives (1 of 2) Learning Objectives (2 of 2) What is JavaScript?
Web Development & Design Foundations with HTML5 Ninth Edition Chapter 14 A Brief Look at JavaScript and jquery Slides in this presentation contain hyperlinks. JAWS users should be able to get a list of
More informationjquery Cookbook jquery Community Experts O'REILLY8 Tokyo Taipei Sebastopol Beijing Cambridge Farnham Koln
jquery Cookbook jquery Community Experts O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Taipei Tokyo Foreword xi Contributors xiii Preface xvii 1. jquery Basics 1 1.1 Including the jquery Library
More informationPart of this connection identifies how the response can / should be provided to the client code via the use of a callback routine.
What is AJAX? In one sense, AJAX is simply an acronym for Asynchronous JavaScript And XML In another, it is a protocol for sending requests from a client (web page) to a server, and how the information
More informationDesign Document V2 ThingLink Startup
Design Document V2 ThingLink Startup Yon Corp Andy Chen Ashton Yon Eric Ouyang Giovanni Tenorio Table of Contents 1. Technology Background.. 2 2. Design Goal...3 3. Architectural Choices and Corresponding
More informationMAX 2006 Beyond Boundaries
Building a Spry Page MAX 2006 Beyond Boundaries Donald Booth Dreamweaver QE/Spry Team Adobe Systems, Inc. 1. Attach CSS/JS 1. Browse to the Assets folder and attach max.css. 2. Attach the 2 js files.
More informationClient Side JavaScript and AJAX
Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is
More informationSiteforce Pilot: Best Practices
Siteforce Pilot: Best Practices Getting Started with Siteforce Setup your users as Publishers and Contributors. Siteforce has two distinct types of users First, is your Web Publishers. These are the front
More informationVirto SharePoint Forms Designer for Office 365. Installation and User Guide
Virto SharePoint Forms Designer for Office 365 Installation and User Guide 2 Table of Contents KEY FEATURES... 3 SYSTEM REQUIREMENTS... 3 INSTALLING VIRTO SHAREPOINT FORMS FOR OFFICE 365...3 LICENSE ACTIVATION...4
More informationModule 5 JavaScript, AJAX, and jquery. Module 5. Module 5 Contains 2 components
Module 5 JavaScript, AJAX, and jquery Module 5 Contains 2 components Both the Individual and Group portion are due on Monday October 30 th Start early on this module One of the most time consuming modules
More informationPHP & My SQL Duration-4-6 Months
PHP & My SQL Duration-4-6 Months Overview of the PHP & My SQL Introduction of different Web Technology Working with the web Client / Server Programs Server Communication Sessions Cookies Typed Languages
More informationFull Stack Web Developer
Full Stack Web Developer Course Contents: Introduction to Web Development HTML5 and CSS3 Introduction to HTML5 Why HTML5 Benefits Of HTML5 over HTML HTML 5 for Making Dynamic Page HTML5 for making Graphics
More informationJavaScript Programming
JavaScript Programming Course ISI-1337B - 5 Days - Instructor-led, Hands on Introduction Today, JavaScript is used in almost 90% of all websites, including the most heavilytrafficked sites like Google,
More informationOverview of the Adobe Dreamweaver CS5 workspace
Adobe Dreamweaver CS5 Activity 2.1 guide Overview of the Adobe Dreamweaver CS5 workspace You can access Adobe Dreamweaver CS5 tools, commands, and features by using menus or by selecting options from one
More informationCOURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3
COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012
More informationFull Stack Web Developer
Full Stack Web Developer S.NO Technologies 1 HTML5 &CSS3 2 JavaScript, Object Oriented JavaScript& jquery 3 PHP&MYSQL Objective: Understand the importance of the web as a medium of communication. Understand
More informationSections and Articles
Advanced PHP Framework Codeigniter Modules HTML Topics Introduction to HTML5 Laying out a Page with HTML5 Page Structure- New HTML5 Structural Tags- Page Simplification HTML5 - How We Got Here 1.The Problems
More informationJquery Manually Set Checkbox Checked Or Not
Jquery Manually Set Checkbox Checked Or Not Working Second Time jquery code to set checkbox element to checked not working. Apr 09 I forced a loop to show checked state after the second menu item in the
More informationPHP / MYSQL DURATION: 2 MONTHS
PHP / MYSQL HTML Introduction of Web Technology History of HTML HTML Editors HTML Doctypes HTML Heads and Basics HTML Comments HTML Formatting HTML Fonts, styles HTML links and images HTML Blocks and Layout
More informationWebsite Development Lecture 18: Working with JQuery ================================================================================== JQuery
JQuery What You Will Learn in This Lecture: What jquery is? How to use jquery to enhance your pages, including adding rich? Visual effects and animations. JavaScript is the de facto language for client-side
More informationPhoto from DOM
Photo from http://www.flickr.com/photos/emraya/2861149369/ DOM 2 DOM When a browser reads an HTML file, it must interpret the file and render it onscreen. This process is sophisticated. Fetch Parse Flow
More informationREADSPEAKER ENTERPRISE HIGHLIGHTING 2.5
READSPEAKER ENTERPRISE HIGHLIGHTING 2.5 Advanced Skinning Guide Introduction The graphical user interface of ReadSpeaker Enterprise Highlighting is built with standard web technologies, Hypertext Markup
More informationDeveloping Ajax Web Apps with GWT. Session I
Developing Ajax Web Apps with GWT Session I Contents Introduction Traditional Web RIAs Emergence of Ajax Ajax ( GWT ) Google Web Toolkit Installing and Setting up GWT in Eclipse The Project Structure Running
More informationCreate-A-Page Design Documentation
Create-A-Page Design Documentation Group 9 C r e a t e - A - P a g e This document contains a description of all development tools utilized by Create-A-Page, as well as sequence diagrams, the entity-relationship
More informationjmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc.
jmaki Overview Sang Shin Java Technology Architect Sun Microsystems, Inc. sang.shin@sun.com www.javapassion.com Agenda What is and Why jmaki? jmaki widgets Using jmaki widget - List widget What makes up
More informationTable Basics. The structure of an table
TABLE -FRAMESET Table Basics A table is a grid of rows and columns that intersect to form cells. Two different types of cells exist: Table cell that contains data, is created with the A cell that
More informationCISC 1600 Lecture 2.4 Introduction to JavaScript
CISC 1600 Lecture 2.4 Introduction to JavaScript Topics: Javascript overview The DOM Variables and objects Selection and Repetition Functions A simple animation What is JavaScript? JavaScript is not Java
More informationAJAX: Rich Internet Applications
AJAX: Rich Internet Applications Web Programming Uta Priss ZELL, Ostfalia University 2013 Web Programming AJAX Slide 1/27 Outline Rich Internet Applications AJAX AJAX example Conclusion More AJAX Search
More informationIndex. Ray Nicholus 2016 R. Nicholus, Beyond jquery, DOI /
Index A addclass() method, 2 addeventlistener, 154, 156 AJAX communication, 20 asynchronous operations, 110 expected and unexpected responses, 111 HTTP, 110 web sockets, 111 AJAX requests DELETE requests,
More informationThingLink User Guide. Andy Chen Eric Ouyang Giovanni Tenorio Ashton Yon
ThingLink User Guide Yon Corp Andy Chen Eric Ouyang Giovanni Tenorio Ashton Yon Index Preface.. 2 Overview... 3 Installation. 4 Functionality. 5 Troubleshooting... 6 FAQ... 7 Contact Information. 8 Appendix...
More informationServerless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016
Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues
More information20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.
20480C: Programming in HTML5 with JavaScript and CSS3 Course Code: 20480C; Duration: 5 days; Instructor-led WHAT YOU WILL LEARN This course provides an introduction to HTML5, CSS3, and JavaScript. This
More informationAJAX: From the Client-side with JavaScript, Back to the Server
AJAX: From the Client-side with JavaScript, Back to the Server Asynchronous server calls and related technologies CS 370 SE Practicum, Cengiz Günay (Some slides courtesy of Eugene Agichtein and the Internets)
More information729G26 Interaction Programming. Lecture 4
729G26 Interaction Programming Lecture 4 Lecture overview jquery - write less, do more Capturing events using jquery Manipulating the DOM, attributes and content with jquery Animation with jquery Describing
More informationAJAX Workshop. Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries
AJAX Workshop Karen A. Coombs University of Houston Libraries Jason A. Clark Montana State University Libraries Outline 1. What you re in for 2. What s AJAX? 3. Why AJAX? 4. Look at some AJAX examples
More informationMerging Ajax and Accessibility
Merging Ajax and Accessibility Mark Meeker Architect, Orbitz Worldwide The Ajax Experience San Francisco - July 27, 2007 Merging Ajax and Accessibility - 1 Mark Meeker Architect, UI Engineering Orbitz
More informationLearn Web Development CodersTrust Polska course outline. Hello CodersTrust! Unit 1. HTML Structuring the Web Prerequisites Learning pathway.
Learn Web Development CodersTrust Polska course outline Hello CodersTrust! Syllabus Communication Publishing your work Course timeframe Kick off Unit 1 Getting started with the Web Installing basic software
More informationWeb Designing Course
Web Designing Course Course Summary: HTML, CSS, JavaScript, jquery, Bootstrap, GIMP Tool Course Duration: Approx. 30 hrs. Pre-requisites: Familiarity with any of the coding languages like C/C++, Java etc.
More informationVirto SharePoint Forms Designer for Office 365. Installation and User Guide
Virto SharePoint Forms Designer for Office 365 Installation and User Guide 2 Table of Contents KEY FEATURES... 3 SYSTEM REQUIREMENTS... 3 INSTALLING VIRTO SHAREPOINT FORMS FOR OFFICE 365... 3 LICENSE ACTIVATION...
More informationjquery Element & Attribute Selectors, Events, HTML Manipulation, & CSS Manipulation
jquery Element & Attribute Selectors, Events, HTML Manipulation, & CSS Manipulation Element Selectors Use CSS selectors to select HTML elements Identify them just as you would in style sheet Examples:
More informationThis course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.
HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets
More informationHow to set up a local root folder and site structure
Activity 2.1 guide How to set up a local root folder and site structure The first thing to do when creating a new website with Adobe Dreamweaver CS3 is to define a site and identify a root folder where
More informationCOPYRIGHTED MATERIAL. Contents. Chapter 1: Creating Structured Documents 1
59313ftoc.qxd:WroxPro 3/22/08 2:31 PM Page xi Introduction xxiii Chapter 1: Creating Structured Documents 1 A Web of Structured Documents 1 Introducing XHTML 2 Core Elements and Attributes 9 The
More informationAJAX Programming Overview. Introduction. Overview
AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.
More informationWELCOME TO JQUERY PROGRAMMING LANGUAGE ONLINE TUTORIAL
WELCOME TO JQUERY PROGRAMMING LANGUAGE ONLINE TUTORIAL 1 The above website template represents the HTML/CSS previous studio project we have been working on. Today s lesson will focus on JQUERY programming
More informationCSC Javascript
CSC 4800 Javascript See book! Javascript Syntax How to embed javascript between from an external file In an event handler URL - bookmarklet
More informationJQUERYUI - SORTABLE. axis This option indicates an axis of movement "x" is horizontal, "y" is vertical. By default its value is false.
JQUERYUI - SORTABLE http://www.tutorialspoint.com/jqueryui/jqueryui_sortable.htm Copyright tutorialspoint.com jqueryui provides sortable method to reorder elements in list or grid using the mouse. This
More informationWe will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety?
1 This lecture s candidate for the Hall of Fame & Shame is the Alt-Tab window switching interface in Microsoft Windows. This interface has been copied by a number of desktop systems, including KDE, Gnome,
More informationUsing AJAX to Easily Integrate Rich Media Elements
505 Using AJAX to Easily Integrate Rich Media Elements James Monroe Course Developer, WWW.eLearningGuild.com The Problem: How to string together several rich media elements (images, Flash movies, video,
More informationUnveiling Zend Studio 8.0
Unveiling Zend Studio 8.0 Roy Ganor Project Lead Zend Studio http://twitter.com/royganor Download! Native Installers! Zend Studio Releases 2006 2007 2007 2008 2008 2009 2009 2010 2010 Studio 6.0 Studio
More informationOracle Application Express 5 New Features
Oracle Application Express 5 New Features 20th HrOUG conference October 16, 2015 Vladislav Uvarov Software Development Manager Database Server Technologies Division Copyright 2015, Oracle and/or its affiliates.
More informationCIS 408 Internet Computing Sunnie Chung
Project #2: CIS 408 Internet Computing Sunnie Chung Building a Personal Webpage in HTML and Java Script to Learn How to Communicate Your Web Browser as Client with a Form Element with a Web Server in URL
More informationFrontend guide. Everything you need to know about HTML, CSS, JavaScript and DOM. Dejan V Čančarević
Frontend guide Everything you need to know about HTML, CSS, JavaScript and DOM Dejan V Čančarević Today frontend is treated as a separate part of Web development and therefore frontend developer jobs are
More informationStatic Webpage Development
Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction
More informationOutline. Introduction to JavaScript Resources What is JavaScript? JavaScript in web pages
JavaScript CMPT 281 Outline Introduction to JavaScript Resources What is JavaScript? JavaScript in web pages Announcements Layout with tables Assignment 3 JavaScript Resources Resources Why JavaScript?
More informationIntroduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p.
Preface p. xiii Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p. 5 Client-Side JavaScript: Executable Content
More informationTIME SCHEDULE MODULE TOPICS PERIODS. HTML Document Object Model (DOM) and javascript Object Notation (JSON)
COURSE TITLE : ADVANCED WEB DESIGN COURSE CODE : 5262 COURSE CATEGORY : A PERIODS/WEEK : 4 PERIODS/SEMESTER : 52 CREDITS : 4 TIME SCHEDULE MODULE TOPICS PERIODS 1 HTML Document Object Model (DOM) and javascript
More informationChapter 9 Introducing JQuery
Chapter 9 Introducing JQuery JQuery is a JavaScript library, designed to make writing JavaScript simpler and so it is useful for managing inputs and interactions with a page visitor, changing the way a
More informationFigure 1 Forms category in the Insert panel. You set up a form by inserting it and configuring options through the Properties panel.
Adobe Dreamweaver CS6 Project 3 guide How to create forms You can use forms to interact with or gather information from site visitors. With forms, visitors can provide feedback, sign a guest book, take
More informationThe course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.
Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA2442 Introduction to JavaScript Objectives This intensive training course
More informationdjango-dajax Documentation
django-dajax Documentation Release 0.9 Jorge Bastida Nov 16, 2017 Contents 1 Documentation 3 1.1 Installation................................................ 3 1.2 API....................................................
More informationCSI 3140 WWW Structures, Techniques and Standards. Browsers and the DOM
CSI 3140 WWW Structures, Techniques and Standards Browsers and the DOM Overview The Document Object Model (DOM) is an API that allows programs to interact with HTML (or XML) documents In typical browsers,
More informationWeb Development. With PHP. Web Development With PHP
Web Development With PHP Web Development With PHP We deliver all our courses as Corporate Training as well if you are a group interested in the course, this option may be more advantageous for you. 8983002500/8149046285
More informationJQuery WHY DIDN T WE LEARN THIS EARLIER??!
JQuery WHY DIDN T WE LEARN THIS EARLIER??! Next couple of weeks This week: Lecture: Security, jquery, Ajax Next Week: No lab (Easter) I may post a bonus (jquery) lab No quiz (yay!) Maybe a bonus one? Snuneymuxw
More informationHow to lay out a web page with CSS
Activity 2.6 guide How to lay out a web page with CSS You can use table design features in Adobe Dreamweaver CS4 to create a simple page layout. However, a more powerful technique is to use Cascading Style
More informationJavascript Performance in the Browser. Charlie Fiskeaux II User Interface Engineer
Javascript Performance in the Browser Charlie Fiskeaux II User Interface Engineer About Me & Circonus Lead User Interface Engineer for Circonus Industry-leading monitoring and analytics platform We deploy
More informationUnderstanding Angular Directives By Jeffry Houser
Understanding Angular Directives By Jeffry Houser A DotComIt Whitepaper Copyright 2016 by DotComIt, LLC Contents A Simple Directive... 4 Our Directive... 4 Create the App Infrastructure... 4 Creating a
More informationKonaKart Shopping Widgets. 3rd January DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK
KonaKart Shopping Widgets 3rd January 2018 DS Data Systems (UK) Ltd., 9 Little Meadow Loughton, Milton Keynes Bucks MK5 8EH UK Introduction KonaKart ( www.konakart.com ) is a Java based ecommerce platform
More informationJavaScript, jquery & AJAX
JavaScript, jquery & AJAX What is JavaScript? An interpreted programming language with object oriented capabilities. Not Java! Originally called LiveScript, changed to JavaScript as a marketing ploy by
More informationEvents & Callbacks (ESaaS 6.5)! 2013 Armando Fox & David Patterson, all rights reserved
Events & Callbacks (ESaaS 6.5)! 2013 Armando Fox & David Patterson, all rights reserved Events" What: occurrences that affect the user interface" User interacts with a page element" Previously-set timer
More informationTheming WebGUI. Give your WebGUI site a new theme... WUC 2010 Ning Sun (ning) Pluton IT
Theming WebGUI Give your WebGUI site a new theme... WUC 2010 Ning Sun (ning) Pluton IT Outline A step-by-step guide to WebGUI-lize a theme Convert htlm/css template to WebGUI theme Or how to give webgui
More informationIn this project, you ll learn how to create your own webpage to tell a story, joke or poem. Think about the story you want to tell.
Tell a Story Introduction In this project, you ll learn how to create your own webpage to tell a story, joke or poem. Step 1: Decide on a story Before you get coding, you ll need to decide on a story to
More informationCE212 Web Application Programming Part 2
CE212 Web Application Programming Part 2 22/01/2018 CE212 Part 2 1 JavaScript Event-Handlers 1 JavaScript may be invoked to handle input events on HTML pages, e.g.
More information! The final is at 10:30 am, Sat 6/4, in this room. ! Open book, open notes. ! No electronic devices. ! No food. ! Assignment 7 due 10pm tomorrow
Announcements ECS 89 6/1! The final is at 10:30 am, Sat 6/4, in this room! Open book, open notes! No electronic devices! No food! Assignment 7 due 10pm tomorrow! No late Assignment 7 s! Fill out course
More informationJavaScript: the Big Picture
JavaScript had to look like Java only less so be Java's dumb kid brother or boy-hostage sidekick. Plus, I had to be done in ten days or something worse than JavaScript would have happened.! JavaScript:
More informationJavaScript By: A. Mousavi & P. Broomhead SERG, School of Engineering Design, Brunel University, UK
Programming for Digital Media EE1707 JavaScript By: A. Mousavi & P. Broomhead SERG, School of Engineering Design, Brunel University, UK 1 References and Sources 1. Javascript & JQuery: interactive front-end
More informationver Wfl Adobe lif Sams Teach Yourself Betsy Bruce Robyn Ness SAMS 800 East 96th Street, Indianapolis, Indiana, USA WlM John Ray ^lg^
Betsy Bruce John Ray Robyn Ness Sams Teach Yourself Adobe Wfl lif ver W ^msssi^ mm WlM ^lg^ SAMS 800 East 96th Street, Indianapolis, Indiana, 46240 USA Table of Contents Introduction What Is Dreamweaver
More informationASSIGNMENT #3: CLIENT-SIDE INTERACTIVITY WITH JAVASCRIPT AND AJAX
ASSIGNMENT #3: CLIENT-SIDE INTERACTIVITY WITH JAVASCRIPT AND AJAX Due October 20, 2010 (in lecture) Reflection Ideation Exercise Bonus Challenge Digital Order from Chaos (15 Points) In Everything Is Miscellaneous,
More informationAt the Forge Dojo Events and Ajax Reuven M. Lerner Abstract The quality of your Dojo depends upon your connections. Last month, we began looking at Dojo, one of the most popular open-source JavaScript
More informationThe Yahoo! User Interface Library (YUI)
The Yahoo! User Interface Library (YUI) Nate Koechley nate@koechley.com http://nate.koechley.com/blog Refresh 06 Orlando, Florida 2006.11.17 1 YUI http://www.flickr.com/photos/cdm/50688378/in/set-1002108/
More informationWorking with Javascript Building Responsive Library apps
Working with Javascript Building Responsive Library apps Computers in Libraries April 15, 2010 Arlington, VA Jason Clark Head of Digital Access & Web Services Montana State University Libraries Overview
More information0.9: Faster, Leaner and Dijit? July 25, 2007 Dylan Schiemann. presented by
0.9: Faster, Leaner and Dijit? July 25, 2007 Dylan Schiemann presented by Key Features Browser support Package/build system Easy widget building Declarative widget creation Rich built-in widget set Comprehensive
More information(try adding using css to add some space between the bottom of the art div and the reset button, this can be done using Margins)
Pixel Art Editor Extra Challenges 1. Adding a Reset button Add a reset button to your HTML, below the #art div. Pixels go here reset The result should look something
More informationGetting Started with
Getting Started with Meganadha Reddy K. Technical Trainer NetCom Learning www.netcomlearning.com Agenda How websites work Introduction to JavaScript JavaScript Frameworks Getting Started : Angular JS Q&A
More informationOutline. AJAX for Libraries. Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries
AJAX for Libraries Jason A. Clark Head of Digital Access and Web Services Montana State University Libraries Karen A. Coombs Head of Web Services University of Houston Libraries Outline 1. What you re
More informationFileNET Guide for AHC PageMasters
ACADEMIC HEALTH CENTER 2 PageMasters have the permissions necessary to perform the following tasks with Site Tools: Application Requirements...3 Access FileNET...3 Login to FileNET...3 Navigate the Site...3
More informationTerratype Umbraco Multi map provider
Terratype Umbraco Multi map provider Installation Installing via Nuget This Umbraco package can be installed via Nuget The first part is the Terratype framework, which coordinates the different map providers,
More information