SlideShare une entreprise Scribd logo
1  sur  40
Javascript & Templates Ideas to Inspire Better Coding
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
First, a good JavaScript site ,[object Object]
Javascript Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Primitive Types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Determining Object Type ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Associative Arrays ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Associative Arrays (cont’d) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Object Definition var mailbox = {0: " mail number 1)", 1: "(mail number 2)", 2: "(mail number 3)"}; OR,  create your own object type : function FormObject(id) {      var obj = oForm[id];      obj.originalValue = obj.value;      obj.dirty = false;      obj.onchange = doSomething(); };
prototype  statement ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extending Objects Date.prototype.format = function(vFormat) {     //'this' is just like in Java        alert("The date to format:"+this);      var x = (//...do date formatting w/ ‘this’ & ‘vFormat’);     return x; }
Practical use of  prototype ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?
Event Delegation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DOM (Document Object Model) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Events and DOM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Custom Objects, Events and  prototype function FormObject(id) {  //constructor pattern    //set properties to the form element's DOM object dynamically    var obj = oForm[id];      obj.originalValue = obj.value;  //original value preserved    obj.dirty = false;  //has object value changed?      //register an onchange to each input needing validation    obj.onchange = this.validate; } //assign validation function to FormObject's FormObject.prototype.validate = function(e) { //by doing it this way, you don't have to change any occurrence of //"onChange" attributes calling an updated function name var evt = e ? e : window.event; var oElem = oForm[this.name]; if(oElem && oElem.getAttribute("validate")) {  //test for null    var value = oElem.value;    //automatically update the dirty flag    oElem.dirty = (value != oElem.originalValue);     if("phone" == oElem.getAttribute("validate"))      validatePhone(value);    else if("email" == oElem.getAttribute("validate"))      validateEmail(value);    } }
Sample Code #1 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sample Code #2 & 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?
JSON  (pronounced Jason) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JSON Objects ,[object Object],[object Object],[object Object],[object Object],[object Object]
JSON Format  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JSON in JSP <%@ taglib uri=&quot;/WEB-INF/c.tld&quot; prefix=&quot;c&quot;%> {       &quot;name&quot; : &quot;${initData.name}&quot;,      &quot;address&quot; : &quot;${initData.address}&quot;,      &quot;phone&quot; : &quot;${initData.phone}&quot;,      &quot;serviceType&quot; : &quot;${initData.serviceType}&quot;,      &quot;serviceLength&quot; : ${initData.serviceLength},      &quot;prefTechs&quot; : [      <c:if test=&quot;${not empty initData.prefTechs}&quot;>          <c:forEach var=&quot;tech&quot; items=&quot;${initData.prefTechs}&quot;                      varStatus=&quot;status&quot;>        {          &quot;name&quot; : &quot;${tech.first}&quot;,          &quot;techId&quot; : &quot;${tech.second}&quot;        }<c:if test=&quot;${!status.last}&quot;>,</c:if>          </c:forEach>      </c:if>      ] }
AJAX & JSON ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DWR and JSON ,[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?
Templates ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why use Javascript templates? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
template.js library ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Using template.js  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
exttemplate.js ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Using exttemplate.js ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Example: Javascript template  ,[object Object],[object Object]
Putting it all Together ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions?
Suggestions ,[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

javascript objects
javascript objectsjavascript objects
javascript objectsVijay Kalyan
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - ObjectsWebStackAcademy
 
JavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJWORKS powered by Ordina
 
Beginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScriptBeginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScriptStoyan Stefanov
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to JavascriptAnjan Banda
 
Lab#1 - Front End Development
Lab#1 - Front End DevelopmentLab#1 - Front End Development
Lab#1 - Front End DevelopmentWalid Ashraf
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Librariesjeresig
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced JavascriptAdieu
 
Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014Jaroslaw Palka
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript BasicsMindfire Solutions
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practicesManav Gupta
 
Java script tutorial
Java script tutorialJava script tutorial
Java script tutorialDoeun KOCH
 
Understanding Object Oriented Javascript - Coffee@DBG June
Understanding Object Oriented Javascript - Coffee@DBG JuneUnderstanding Object Oriented Javascript - Coffee@DBG June
Understanding Object Oriented Javascript - Coffee@DBG JuneDeepu S Nath
 

Tendances (20)

javascript objects
javascript objectsjavascript objects
javascript objects
 
Javascript
JavascriptJavascript
Javascript
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
JavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UX
 
Java script -23jan2015
Java script -23jan2015Java script -23jan2015
Java script -23jan2015
 
Beginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScriptBeginning Object-Oriented JavaScript
Beginning Object-Oriented JavaScript
 
JavaScript Basics
JavaScript BasicsJavaScript Basics
JavaScript Basics
 
Javascript
JavascriptJavascript
Javascript
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to Javascript
 
Lab#1 - Front End Development
Lab#1 - Front End DevelopmentLab#1 - Front End Development
Lab#1 - Front End Development
 
Secrets of JavaScript Libraries
Secrets of JavaScript LibrariesSecrets of JavaScript Libraries
Secrets of JavaScript Libraries
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
 
Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014Patterns for JVM languages - Geecon 2014
Patterns for JVM languages - Geecon 2014
 
Java script
Java scriptJava script
Java script
 
A Deeper look into Javascript Basics
A Deeper look into Javascript BasicsA Deeper look into Javascript Basics
A Deeper look into Javascript Basics
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practices
 
Java script tutorial
Java script tutorialJava script tutorial
Java script tutorial
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 
Understanding Object Oriented Javascript - Coffee@DBG June
Understanding Object Oriented Javascript - Coffee@DBG JuneUnderstanding Object Oriented Javascript - Coffee@DBG June
Understanding Object Oriented Javascript - Coffee@DBG June
 

Similaire à Javascript Templating

eXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingeXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingHoat Le
 
Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2borkweb
 
JavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM ManipulationJavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM Manipulationborkweb
 
Introduction to Prototype JS Framework
Introduction to Prototype JS FrameworkIntroduction to Prototype JS Framework
Introduction to Prototype JS FrameworkMohd Imran
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptdominion
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom ManipulationMohammed Arif
 
Modern JavaScript Programming
Modern JavaScript Programming Modern JavaScript Programming
Modern JavaScript Programming Wildan Maulana
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
jQuery Presentation - Refresh Events
jQuery Presentation - Refresh EventsjQuery Presentation - Refresh Events
jQuery Presentation - Refresh EventsEugene Andruszczenko
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryRefresh Events
 
Zend framework 05 - ajax, json and j query
Zend framework 05 - ajax, json and j queryZend framework 05 - ajax, json and j query
Zend framework 05 - ajax, json and j queryTricode (part of Dept)
 
JavaScript Workshop
JavaScript WorkshopJavaScript Workshop
JavaScript WorkshopPamela Fox
 
Sencha / ExtJS : Object Oriented JavaScript
Sencha / ExtJS : Object Oriented JavaScriptSencha / ExtJS : Object Oriented JavaScript
Sencha / ExtJS : Object Oriented JavaScriptRohan Chandane
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design PatternsZohar Arad
 

Similaire à Javascript Templating (20)

eXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingeXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction Training
 
Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2Javascript: Ajax & DOM Manipulation v1.2
Javascript: Ajax & DOM Manipulation v1.2
 
Java script
Java scriptJava script
Java script
 
JavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM ManipulationJavaScript: Ajax & DOM Manipulation
JavaScript: Ajax & DOM Manipulation
 
Introduction to Prototype JS Framework
Introduction to Prototype JS FrameworkIntroduction to Prototype JS Framework
Introduction to Prototype JS Framework
 
Advisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScriptAdvisor Jumpstart: JavaScript
Advisor Jumpstart: JavaScript
 
Reversing JavaScript
Reversing JavaScriptReversing JavaScript
Reversing JavaScript
 
JS basics
JS basicsJS basics
JS basics
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
 
C5 Javascript
C5 JavascriptC5 Javascript
C5 Javascript
 
Modern JavaScript Programming
Modern JavaScript Programming Modern JavaScript Programming
Modern JavaScript Programming
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
J s-o-n-120219575328402-3
J s-o-n-120219575328402-3J s-o-n-120219575328402-3
J s-o-n-120219575328402-3
 
Json
JsonJson
Json
 
jQuery Presentation - Refresh Events
jQuery Presentation - Refresh EventsjQuery Presentation - Refresh Events
jQuery Presentation - Refresh Events
 
Eugene Andruszczenko: jQuery
Eugene Andruszczenko: jQueryEugene Andruszczenko: jQuery
Eugene Andruszczenko: jQuery
 
Zend framework 05 - ajax, json and j query
Zend framework 05 - ajax, json and j queryZend framework 05 - ajax, json and j query
Zend framework 05 - ajax, json and j query
 
JavaScript Workshop
JavaScript WorkshopJavaScript Workshop
JavaScript Workshop
 
Sencha / ExtJS : Object Oriented JavaScript
Sencha / ExtJS : Object Oriented JavaScriptSencha / ExtJS : Object Oriented JavaScript
Sencha / ExtJS : Object Oriented JavaScript
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 

Javascript Templating

  • 1. Javascript & Templates Ideas to Inspire Better Coding
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Object Definition var mailbox = {0: &quot; mail number 1)&quot;, 1: &quot;(mail number 2)&quot;, 2: &quot;(mail number 3)&quot;}; OR, create your own object type : function FormObject(id) {      var obj = oForm[id];      obj.originalValue = obj.value;      obj.dirty = false;      obj.onchange = doSomething(); };
  • 10.
  • 11. Extending Objects Date.prototype.format = function(vFormat) {     //'this' is just like in Java      alert(&quot;The date to format:&quot;+this);     var x = (//...do date formatting w/ ‘this’ & ‘vFormat’);     return x; }
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18. Custom Objects, Events and prototype function FormObject(id) { //constructor pattern   //set properties to the form element's DOM object dynamically   var obj = oForm[id];     obj.originalValue = obj.value; //original value preserved   obj.dirty = false; //has object value changed?     //register an onchange to each input needing validation   obj.onchange = this.validate; } //assign validation function to FormObject's FormObject.prototype.validate = function(e) { //by doing it this way, you don't have to change any occurrence of //&quot;onChange&quot; attributes calling an updated function name var evt = e ? e : window.event; var oElem = oForm[this.name]; if(oElem && oElem.getAttribute(&quot;validate&quot;)) { //test for null   var value = oElem.value;   //automatically update the dirty flag   oElem.dirty = (value != oElem.originalValue);   if(&quot;phone&quot; == oElem.getAttribute(&quot;validate&quot;))     validatePhone(value);   else if(&quot;email&quot; == oElem.getAttribute(&quot;validate&quot;))     validateEmail(value);   } }
  • 19.
  • 20.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. JSON in JSP <%@ taglib uri=&quot;/WEB-INF/c.tld&quot; prefix=&quot;c&quot;%> {       &quot;name&quot; : &quot;${initData.name}&quot;,      &quot;address&quot; : &quot;${initData.address}&quot;,      &quot;phone&quot; : &quot;${initData.phone}&quot;,      &quot;serviceType&quot; : &quot;${initData.serviceType}&quot;,      &quot;serviceLength&quot; : ${initData.serviceLength},      &quot;prefTechs&quot; : [      <c:if test=&quot;${not empty initData.prefTechs}&quot;>          <c:forEach var=&quot;tech&quot; items=&quot;${initData.prefTechs}&quot;                      varStatus=&quot;status&quot;>        {          &quot;name&quot; : &quot;${tech.first}&quot;,          &quot;techId&quot; : &quot;${tech.second}&quot;        }<c:if test=&quot;${!status.last}&quot;>,</c:if>          </c:forEach>      </c:if>      ] }
  • 28.
  • 29.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 40.