SlideShare a Scribd company logo
1 of 33
Top 10 HTML5 Features for
Oracle Cloud Developers
Brian “Bex” Huff
Chief Software Architect
2
Agenda
 Intro to Oracle Cloud
• Which ones use HTML5 extensively?
 Intro to HTML5
• Why lightweight HTML5 frameworks are usually superior
 Top 10 HTML5 features
• The big ones you should know about
 HTML5 Frameworks
• Oracle JET, jQuery, node.js, etc.
 Questions/Comments?
The most recent version of this presentation is on SlideShare:
 http://www.slideshare.net/bexmex/
3
Intro to Oracle Cloud
 Oracle Sites Cloud Service
• Extension of Oracle Document Cloud Service
• HTML5 centric application for website design
 Oracle Social Cloud
• Deep integrations with the other cloud applications
• Soon to be bundled with Document Cloud
 Oracle Mobile Cloud
• Create rich mobile web apps with the power of native
• Leverages HTML5 browser built into all smartphones
4
Why HTML5?
 HTML5 is critical for cloud development
 Accepted on almost all platforms
• Easier to support homogenous environment if based on open standards
 Rapid development cycles
• Less need for server-side code development
 Cheaper hosting model
• Heavy CPU processing on client browser, not server hardware
Why HTML5 for the enterprise
 Enterprise apps are (slowly) moving to the cloud
 Cloud apps use a more open and friendly architecture
• Based on standard protocols
• HTTP, XML, JSON
 Heavy frameworks still have value (ADF, etc)
• But entire point of the cloud is the least complex way to solve problems
• Heavily customized system? Probably need on-premise solution w/ADF
• Simplified front end? JavaScript and HTML5 are the future
5
Brief History of HTML5
 Initiated in 2004 by Apple, Mozilla, Google, and Microsoft
 XHTML dropped by the W3C in favor of HTML5 in 2009
 Apple bundles HTML5 compliant browser into iPhone
 Apple officially rejects mobile Flash in April 2010
 Adobe stops developing mobile Flash in November 2011
 Became a W3C 1.0 standard in October 2014
 But the most critical event in the history of HTML5???
 Microsoft drops support for browsers older than IE 11/Edge in
January 2016
6
7
Top 10 Features
1. Semantic HTML
2. Local Storage
3. Geolocation
4. New security options: OAuth2
5. Cross-Origin Resource Sharing
6. Advanced HTML forms
7. WebSockets
8. WebWorkers
9. Built in Audio/Video support
10.Custom DOM Elements and Attributes
8
1) Semantic HTML
 Explicit tags for the sections of a page everybody uses
• header, footer, article, section, nav, menu
 Structure
• http://www.hongkiat.com/blog/html-5-semantics/
• https://www.w3.org/WAI/GL/wiki/Using_HTML5_section_elements
 Semantic web comes closer, but probably wont happen yet
• RDFa protocol
• schema.org microdata
• JSON-LD
Semantic HTML Example
<body>
<header>
<h1>Welcome To Our Website!</h1>
</header>
<nav>
<header>
<h2>Please select one!</h2>
</header>
<ul>
<li>Menu 1</li>
<li>Menu 2</li>
</ul>
</nav>
<aside>
<h2>Get To Know Us Better!</h2>
<section>
<h3>Popular Posts</h3>
</section>
</aside>
9
Semantic HTML Example, cont.
<article>
<header>
<h1>Title of Article</h1>
<h2>Subtitle of Article</h2>
</header>
<section>
<h3>First Logical Part (e.g. "Theory")</h3>
<p>Paragraph 1 in first section</p>
</section>
<footer>
<h4>Author Bio</h4>
<p>Paragraph in Article's Footer</p>
</footer>
</article>
<footer>
<div>Social Media Links</div>
</footer>
</body>
10
11
2) Local storage
 Allows large “offline” storage of structured data
• Bye bye cookies, hello database!
• By default, up to 5 Megs per website
• Expandable with user permission
• http://stackoverflow.com/questions/6276282/how-can-i-request-an-increase-to-
the-html5-localstorage-size-on-ipad-like-the-f
 All browser support basic offline Web Storage for strings:
localStorage["foobar"] = "my data";
localStorage.setItem("foobar", "my data");
sessionStorage["colorScheme"] = "oracle-red";
 Objects must be explicitly serialized into JSON:
localStorage["foobar"] = JSON.stringify("my data");
var foobar = JSON.parse(localStorage["foobar"]);
12
2) Local storage, cont.
 contenteditable
• Cool flag to auto-add this functionality
• http://html5demos.com/contenteditable
• But keep in mind, the UI is kind of terrible
• https://medium.com/medium-eng/why-contenteditable-is-terrible-122d8a40e480
<section id="editable" contenteditable="true">
<p>This text is natively editable in the browser</p>
</section>
<script>
var editable = document.getElementById('editable');
addEvent(editable, 'blur', function () {
localStorage.setItem('contenteditable', this.innerHTML);
});
</script>
13
2) Local storage, cont.
 Query languages exist, but are not universal
• LocalStorage
• Supported by all browsers, but just name-value pairs
• WebSQL
• Supported in Chrome and Safari, but deprecated since 2010
• IndexedDB
• Successor to both, but browser support is very spotty
• Kind of slow, weird API
 Query Performance is in its infancy
• IndexDB blocks the DOM unless run as a Web Worker (discussed later)
 Not hopeful for any decent query standard any time soon
• Classic example of why WHATWG was better than W3C
14
3) Geolocation
 Allows web sites to determine the location of the client
• http://html5demos.com/geo
• http://www.w3schools.com/html/html5_geolocation.asp
 Not just for mobile web: also for laptops and mobile web sites
15
3) Geolocation, cont.
 How does it know my location???
• This is left up to the implementers of the spec to determine
• Each browser and platform has a different process
 Mobile web: location is usually known
• Either GPS or cell tower info
 Desktop
• In Chrome, it sends a message with your network info (IP address, MAC
address, Access Point, signal strength) to a Google service
• Compares to data Google Maps gathered about WiFi access points
• Or get closest known public router based on IP address
16
4) OAuth2
 Add-on to HTML5, built into most Oracle Cloud apps
• Not strictly part of the spec, but critical for its future
 Think of OAuth2 as the “valet key for the web”
• Grants limited access to specific resources, without giving it all away
 OAuth2 process:
1.An application requests authorization on a user's behalf.
2.The application obtains a Grant Token.
3.The client requests an Access Token by using the Grant Token.
4.The authorization server validates the Grant Token and issues an Access
Token and a Refresh Token.
5.The client requests the protected resource, authenticating using the
Access Token.
6.The resource server verifies the Access Token and serves the request.
4) OAuth2
17
18
5) Cross Origin Resource Sharing
 Previously, AJAX calls could only go back to original server
• Probably the most irritating security ‘feature’ in HTML4
 Could not host HTML and JS on two domains without hacks
• Google Maps was ‘hackable’ but most sites were not
• Each loaded JavaScript file needed a ‘callback’ to load
• Every developer had to roll their own callback API
 Now, new HTTP header to load sources from multiple servers
• Access-Control-Allow-Origin: *
5) Cross Origin Resource Sharing, cont.
 Use standard AJAX objects across domains
var req = new XmlHTTPRequest();
req.open("POST", "http://example.org");
 Use new window.postMessage to message across domains
window.postMessage("hello world!", "http://example.org");
function receiveMessage(event) {
// minimal security checks
if (event.origin !== "http://example.org")
return;
alert(event.data);
}
window.addEventListener("message", receiveMessage, false);
19
20
6) Advanced Web Forms
 HTML5 adds form options that have been sorely needed for
decades
 New input types
• url, tel(telephone number), email, number, color, range, datetime, etc
 Automatic in-line validation: critical for mobile web
• Use the pattern attribute to do regular expression validation
• Also specify min, max, required and a placeholder text
<input type="text" id="productId" pattern="[A-Z]{3}[0-9]{3}"
placeholder="XXX999" maxlength="6" required/>
<input type="number" id="quantity" min="0" max="100" step="1" />
21
7) WebSockets
 Web protocols (HTTP) are “stateless”
• By design, as soon as the page is drawn, the data might be out of date
• How do we know when the data has been updated?
 Prior to HTML5, had to use JavaScript to “poll” for new data
• JavaScript timeouts to load in new data
• Every application/framework had to roll their own
• Fairly high overhead, depending on the framework
 WebSockets act like normal sockets
• Allows back-end HTTP server to “push” new notifications to web front end
7) WebSockets, cont.
var connection = new WebSocket('ws://example.com/echo');
connection.onerror = function (error) {
alert('WebSocket Error ' + error);
};
connection.onmessage = function (e) {
alert('Server said: ' + e.data);
};
// send a string, binary data, or even a file!
connection.send('your message');
var binary = new Uint8Array(img.data.length);
connection.send(binary.buffer);
var file = document.querySelector('input[type="file"]').files[0];
connection.send(file);
22
23
8) WebWorkers
 JavaScript is a single-threaded programming language
• All scripts and events handled by one single thread
• So if one function takes a long time, the whole web page hangs!
• Major reason why JavaScript cant run heavy enterprise apps
 The solution? WebWorkers!
• Runs in the background, instead of the foreground
• No more JavaScript errors from hogging the CPU resources
• Send messages from main window to worker window
8) WebWorkers, cont.
 Typically, the main page will start a worker, and post JSON
formatted messages to it
• Binary data in buffers can also be transferred
<output id="result"></output>
<script>
var worker = new Worker('doWork.js');
worker.addEventListener('message', function(e) {
document.getElementById('result').textContent = e.data;
}, false);
worker.postMessage({'cmd':'doStuff', 'msg':'my message...'});
worker.terminate();
</script>
24
8) WebWorkers, cont.
 The worker page (doWork.js) creates an event listener, and
responds to messages from the main page by posing a message
to the ‘self’ object:
self.addEventListener('message', function(e) {
var data = e.data;
switch (data.cmd) {
case 'doStuff':
self.postMessage('DOING STUFF: ' + data.msg);
break;
default:
self.postMessage('Unknown command: ' + data.msg);
};
}, false);
25
8) WebWorkers, cont.
 For security, performance, and thread-safety a web worker has
more limited access to JavaScript functions
 The following objects are not available:
• The DOM (it's not thread-safe)
• The window object
• The document object
• The parent object
26
27
9) Audio and Video Support
 New elements: <video> ,<audio>, and <track>
 Mostly eliminates the need for JavaFX, Flash, or Silverlight
 HTML5 is now the enterprise video/audio standard
• http://www.ramp.com/enterprise/the-dawn-of-html5-video-as-the-
enterprise-standard/
 YouTube made HTML5 its default delivery platform in 2015
• http://youtube-eng.blogspot.com/2015/01/youtube-now-defaults-to-
html5_27.html
28
9) Audio and Video Support, cont.
 YouTube wanted to make the jump years ago, but several pieces
were missing that have been recently added:
• Fullscreen mode
• WebRTC: real time video communication between browsers
• Google hangouts
• Encrypted media extensions
• Adaptive Bitrate: downgrade to lower video quality based on bandwidth
• MediaSource extensions: allow JavaScript to create and manage streams
29
10) Custom DOM Elements and Attributes
 In addition to semantic HTML, you can make your own custom
elements and attributes
• Make HTML more like XML, and avoid pages of <div> soup
 Custom elements can be declared in the HTML like others:
<my-elem></my-elem>
 The behavior of the custom element is like the <span> tag, until
you register the element and its behavior:
var myElem = document.registerElement('my-elem', {
prototype: Object.create(HTMLElement.prototype)
});
document.body.appendChild(new myElem());
;
30
10) Custom DOM Elements and Attributes, cont.
 Custom data attributes can be added to all elements:
<div id="foo" data-my-attribute="bar"></div>
 Access data with the standard getAttribute function:
var foo = document.getElementById('foo');
var data = plant.getAttribute('data-my-attribute');
 Limitations and best practices:
• Custom elements must contain a dash
• Ensures it will be compatible with future HTML6 tags
• Custom attributes must start with data-
• HTML5 spec strongly states that data attributes be PRIVATE to that page
• Only JavaScript on that page should interact with those attributes
• Should not be considered a replacement for microformats
• IE 11 supports custom attributes, not custom elements (yet)
31
Tips & Tricks
 HTML5 opens new security holes that need to be plugged
• WebSockets and Cross Origin Resource Sharing in particular
• Never, ever, ever assume LocalStorage can be trusted!
• https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet
 Double check for browser compatability
• Check http://caniuse.com/ to verify
 Performance will likely be an issue for a while
• Plan on using web workers a lot!
32
HTML5 Frameworks to Use
 Oracle JavaScript Extension Toolkit (JET)
• Lightweight JS framework for Oracle apps
• Use in Oracle Dev cloud, Social cloud
 jQuery
• Most battle-tested HTML/JS framework
• Uses HTML5 features when possible, or downgrades to HTML4 for older
browsers
 Node.js
• Front end and back end JavaScript framework
• More free developer packages that Ruby, Python, or Rails
 All can be added to DEV cloud or Sites cloud
33
 My Company: http://bezzotech.com
 My Blog: http://bexhuff.com
 My Self: bex@bezzotech.com
Questions?

More Related Content

What's hot

WebCenter Content & Portal Methodology Deep Dive with Case Studies
WebCenter Content & Portal Methodology Deep Dive with Case StudiesWebCenter Content & Portal Methodology Deep Dive with Case Studies
WebCenter Content & Portal Methodology Deep Dive with Case StudiesBrian Huff
 
Creating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteCreating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteBrian Huff
 
Oracle UCM Implementation Patterns
Oracle UCM Implementation PatternsOracle UCM Implementation Patterns
Oracle UCM Implementation PatternsBrian Huff
 
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Brian Huff
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developerbalunasj
 
PLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignPLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignAlfresco Software
 
Alfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco Software
 
Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelonahernanibf
 
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADFOWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADFBrian Huff
 
PLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignPLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignAlfresco Software
 
A Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowA Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowFishbowl Solutions
 
Lean Startup with WebObjects
Lean Startup with WebObjectsLean Startup with WebObjects
Lean Startup with WebObjectsWO Community
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionAcquia
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Nicole Szigeti
 
WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013Fishbowl Solutions
 
SharePoint Saturday Utah - The Art of the Possible Keynote
SharePoint Saturday Utah - The Art of the Possible KeynoteSharePoint Saturday Utah - The Art of the Possible Keynote
SharePoint Saturday Utah - The Art of the Possible KeynoteLiam Cleary [MVP]
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 

What's hot (20)

WebCenter Content & Portal Methodology Deep Dive with Case Studies
WebCenter Content & Portal Methodology Deep Dive with Case StudiesWebCenter Content & Portal Methodology Deep Dive with Case Studies
WebCenter Content & Portal Methodology Deep Dive with Case Studies
 
Creating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized WebsiteCreating and Maintaining An Internationalized Website
Creating and Maintaining An Internationalized Website
 
Oracle UCM Implementation Patterns
Oracle UCM Implementation PatternsOracle UCM Implementation Patterns
Oracle UCM Implementation Patterns
 
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
Top 10 Ways To Integrate With Oracle Enterprise Content Management (ECM)
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
PLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and DesignPLAT-17 Alfresco iOS Mobile Application Details and Design
PLAT-17 Alfresco iOS Mobile Application Details and Design
 
Alfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and DesignAlfresco iOS Mobile Application In Depth Details and Design
Alfresco iOS Mobile Application In Depth Details and Design
 
Drupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon BarcelonaDrupal architectures for flexible content - Drupalcon Barcelona
Drupal architectures for flexible content - Drupalcon Barcelona
 
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADFOWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
OWASP Top 10 Security Vulnerabilities, and Securing them with Oracle ADF
 
PLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and DesignPLAT-18 Alfresco iOS Mobile Application Details and Design
PLAT-18 Alfresco iOS Mobile Application Details and Design
 
A Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to KnowA Succesful WebCenter Upgrade: What You Need to Know
A Succesful WebCenter Upgrade: What You Need to Know
 
Offline Web Apps
Offline Web AppsOffline Web Apps
Offline Web Apps
 
Lean Startup with WebObjects
Lean Startup with WebObjectsLean Startup with WebObjects
Lean Startup with WebObjects
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for Solution
 
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
Alfresco Coding mit dem Alfresco SDK (auf Englisch) - Julien Bruinaud, Techni...
 
WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013WebCenter Content 11g Upgrade Webinar - March 2013
WebCenter Content 11g Upgrade Webinar - March 2013
 
SharePoint Saturday Utah - The Art of the Possible Keynote
SharePoint Saturday Utah - The Art of the Possible KeynoteSharePoint Saturday Utah - The Art of the Possible Keynote
SharePoint Saturday Utah - The Art of the Possible Keynote
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint Beast
 
Web works presso
Web works pressoWeb works presso
Web works presso
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 

Similar to Top 10 HTML5 Features for Oracle Cloud Developers

Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Securitychuckbt
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCharles Moulliard
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of usKen Yagen
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsSkills Matter
 
BeEF_EUSecWest-2012_Michele-Orru
BeEF_EUSecWest-2012_Michele-OrruBeEF_EUSecWest-2012_Michele-Orru
BeEF_EUSecWest-2012_Michele-OrruMichele Orru
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuAppUniverz Org
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesWesley Hales
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web ApplicationsMarkku Laine
 
Node.js: The What, The How and The When
Node.js: The What, The How and The WhenNode.js: The What, The How and The When
Node.js: The What, The How and The WhenFITC
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Commit University
 
Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...boxuno
 
SignalR: Add real-time to your applications
SignalR: Add real-time to your applicationsSignalR: Add real-time to your applications
SignalR: Add real-time to your applicationsEugene Zharkov
 
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsys
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsysUsing communication and messaging API in the HTML5 world - GIl Fink, sparXsys
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsysCodemotion Tel Aviv
 
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)robinzimmermann
 
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programminghotrannam
 

Similar to Top 10 HTML5 Features for Oracle Cloud Developers (20)

Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
Html5
Html5Html5
Html5
 
Mobile Web
Mobile WebMobile Web
Mobile Web
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
 
2010 code camp rest for the rest of us
2010 code camp   rest for the rest of us2010 code camp   rest for the rest of us
2010 code camp rest for the rest of us
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-apps
 
Html5
Html5Html5
Html5
 
BeEF_EUSecWest-2012_Michele-Orru
BeEF_EUSecWest-2012_Michele-OrruBeEF_EUSecWest-2012_Michele-Orru
BeEF_EUSecWest-2012_Michele-Orru
 
Week 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. WuWeek 05 Web, App and Javascript_Brandon, S.H. Wu
Week 05 Web, App and Javascript_Brandon, S.H. Wu
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
 
Node.js: The What, The How and The When
Node.js: The What, The How and The WhenNode.js: The What, The How and The When
Node.js: The What, The How and The When
 
Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta Workshop HTML5+PhoneGap by Ivano Malavolta
Workshop HTML5+PhoneGap by Ivano Malavolta
 
Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...Should you use HTML5 to build your product? The pros & cons of using current ...
Should you use HTML5 to build your product? The pros & cons of using current ...
 
SignalR: Add real-time to your applications
SignalR: Add real-time to your applicationsSignalR: Add real-time to your applications
SignalR: Add real-time to your applications
 
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsys
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsysUsing communication and messaging API in the HTML5 world - GIl Fink, sparXsys
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsys
 
Prueba ppt
Prueba pptPrueba ppt
Prueba ppt
 
Html5v1
Html5v1Html5v1
Html5v1
 
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)
 
HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
 

More from Brian Huff

AP Automation for EBS or PeopleSoft with Oracle WebCenter
AP Automation for EBS or PeopleSoft with Oracle WebCenterAP Automation for EBS or PeopleSoft with Oracle WebCenter
AP Automation for EBS or PeopleSoft with Oracle WebCenterBrian Huff
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Brian Huff
 
The Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogicThe Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogicBrian Huff
 
Oracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best PracticesOracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best PracticesBrian Huff
 
Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningBrian Huff
 
Real World Examples of Succesful Enterprise Content Management Strategies
Real World Examples of Succesful Enterprise Content Management StrategiesReal World Examples of Succesful Enterprise Content Management Strategies
Real World Examples of Succesful Enterprise Content Management StrategiesBrian Huff
 
A Pragmatic Strategy for Oracle Enterprise Content Management
A Pragmatic Strategy for Oracle Enterprise Content ManagementA Pragmatic Strategy for Oracle Enterprise Content Management
A Pragmatic Strategy for Oracle Enterprise Content ManagementBrian Huff
 
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)Brian Huff
 
Enterprise 2.0: What it is, and how you'll fail!
Enterprise 2.0: What it is, and how you'll fail!Enterprise 2.0: What it is, and how you'll fail!
Enterprise 2.0: What it is, and how you'll fail!Brian Huff
 

More from Brian Huff (9)

AP Automation for EBS or PeopleSoft with Oracle WebCenter
AP Automation for EBS or PeopleSoft with Oracle WebCenterAP Automation for EBS or PeopleSoft with Oracle WebCenter
AP Automation for EBS or PeopleSoft with Oracle WebCenter
 
Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)Top 10 Web Security Vulnerabilities (OWASP Top 10)
Top 10 Web Security Vulnerabilities (OWASP Top 10)
 
The Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogicThe Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogic
 
Oracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best PracticesOracle UCM Security: Challenges and Best Practices
Oracle UCM Security: Challenges and Best Practices
 
Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance Tuning
 
Real World Examples of Succesful Enterprise Content Management Strategies
Real World Examples of Succesful Enterprise Content Management StrategiesReal World Examples of Succesful Enterprise Content Management Strategies
Real World Examples of Succesful Enterprise Content Management Strategies
 
A Pragmatic Strategy for Oracle Enterprise Content Management
A Pragmatic Strategy for Oracle Enterprise Content ManagementA Pragmatic Strategy for Oracle Enterprise Content Management
A Pragmatic Strategy for Oracle Enterprise Content Management
 
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)
A Pragmatic Strategy for Oracle Enterprise Content Management (ECM)
 
Enterprise 2.0: What it is, and how you'll fail!
Enterprise 2.0: What it is, and how you'll fail!Enterprise 2.0: What it is, and how you'll fail!
Enterprise 2.0: What it is, and how you'll fail!
 

Recently uploaded

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Top 10 HTML5 Features for Oracle Cloud Developers

  • 1. Top 10 HTML5 Features for Oracle Cloud Developers Brian “Bex” Huff Chief Software Architect
  • 2. 2 Agenda  Intro to Oracle Cloud • Which ones use HTML5 extensively?  Intro to HTML5 • Why lightweight HTML5 frameworks are usually superior  Top 10 HTML5 features • The big ones you should know about  HTML5 Frameworks • Oracle JET, jQuery, node.js, etc.  Questions/Comments? The most recent version of this presentation is on SlideShare:  http://www.slideshare.net/bexmex/
  • 3. 3 Intro to Oracle Cloud  Oracle Sites Cloud Service • Extension of Oracle Document Cloud Service • HTML5 centric application for website design  Oracle Social Cloud • Deep integrations with the other cloud applications • Soon to be bundled with Document Cloud  Oracle Mobile Cloud • Create rich mobile web apps with the power of native • Leverages HTML5 browser built into all smartphones
  • 4. 4 Why HTML5?  HTML5 is critical for cloud development  Accepted on almost all platforms • Easier to support homogenous environment if based on open standards  Rapid development cycles • Less need for server-side code development  Cheaper hosting model • Heavy CPU processing on client browser, not server hardware
  • 5. Why HTML5 for the enterprise  Enterprise apps are (slowly) moving to the cloud  Cloud apps use a more open and friendly architecture • Based on standard protocols • HTTP, XML, JSON  Heavy frameworks still have value (ADF, etc) • But entire point of the cloud is the least complex way to solve problems • Heavily customized system? Probably need on-premise solution w/ADF • Simplified front end? JavaScript and HTML5 are the future 5
  • 6. Brief History of HTML5  Initiated in 2004 by Apple, Mozilla, Google, and Microsoft  XHTML dropped by the W3C in favor of HTML5 in 2009  Apple bundles HTML5 compliant browser into iPhone  Apple officially rejects mobile Flash in April 2010  Adobe stops developing mobile Flash in November 2011  Became a W3C 1.0 standard in October 2014  But the most critical event in the history of HTML5???  Microsoft drops support for browsers older than IE 11/Edge in January 2016 6
  • 7. 7 Top 10 Features 1. Semantic HTML 2. Local Storage 3. Geolocation 4. New security options: OAuth2 5. Cross-Origin Resource Sharing 6. Advanced HTML forms 7. WebSockets 8. WebWorkers 9. Built in Audio/Video support 10.Custom DOM Elements and Attributes
  • 8. 8 1) Semantic HTML  Explicit tags for the sections of a page everybody uses • header, footer, article, section, nav, menu  Structure • http://www.hongkiat.com/blog/html-5-semantics/ • https://www.w3.org/WAI/GL/wiki/Using_HTML5_section_elements  Semantic web comes closer, but probably wont happen yet • RDFa protocol • schema.org microdata • JSON-LD
  • 9. Semantic HTML Example <body> <header> <h1>Welcome To Our Website!</h1> </header> <nav> <header> <h2>Please select one!</h2> </header> <ul> <li>Menu 1</li> <li>Menu 2</li> </ul> </nav> <aside> <h2>Get To Know Us Better!</h2> <section> <h3>Popular Posts</h3> </section> </aside> 9
  • 10. Semantic HTML Example, cont. <article> <header> <h1>Title of Article</h1> <h2>Subtitle of Article</h2> </header> <section> <h3>First Logical Part (e.g. "Theory")</h3> <p>Paragraph 1 in first section</p> </section> <footer> <h4>Author Bio</h4> <p>Paragraph in Article's Footer</p> </footer> </article> <footer> <div>Social Media Links</div> </footer> </body> 10
  • 11. 11 2) Local storage  Allows large “offline” storage of structured data • Bye bye cookies, hello database! • By default, up to 5 Megs per website • Expandable with user permission • http://stackoverflow.com/questions/6276282/how-can-i-request-an-increase-to- the-html5-localstorage-size-on-ipad-like-the-f  All browser support basic offline Web Storage for strings: localStorage["foobar"] = "my data"; localStorage.setItem("foobar", "my data"); sessionStorage["colorScheme"] = "oracle-red";  Objects must be explicitly serialized into JSON: localStorage["foobar"] = JSON.stringify("my data"); var foobar = JSON.parse(localStorage["foobar"]);
  • 12. 12 2) Local storage, cont.  contenteditable • Cool flag to auto-add this functionality • http://html5demos.com/contenteditable • But keep in mind, the UI is kind of terrible • https://medium.com/medium-eng/why-contenteditable-is-terrible-122d8a40e480 <section id="editable" contenteditable="true"> <p>This text is natively editable in the browser</p> </section> <script> var editable = document.getElementById('editable'); addEvent(editable, 'blur', function () { localStorage.setItem('contenteditable', this.innerHTML); }); </script>
  • 13. 13 2) Local storage, cont.  Query languages exist, but are not universal • LocalStorage • Supported by all browsers, but just name-value pairs • WebSQL • Supported in Chrome and Safari, but deprecated since 2010 • IndexedDB • Successor to both, but browser support is very spotty • Kind of slow, weird API  Query Performance is in its infancy • IndexDB blocks the DOM unless run as a Web Worker (discussed later)  Not hopeful for any decent query standard any time soon • Classic example of why WHATWG was better than W3C
  • 14. 14 3) Geolocation  Allows web sites to determine the location of the client • http://html5demos.com/geo • http://www.w3schools.com/html/html5_geolocation.asp  Not just for mobile web: also for laptops and mobile web sites
  • 15. 15 3) Geolocation, cont.  How does it know my location??? • This is left up to the implementers of the spec to determine • Each browser and platform has a different process  Mobile web: location is usually known • Either GPS or cell tower info  Desktop • In Chrome, it sends a message with your network info (IP address, MAC address, Access Point, signal strength) to a Google service • Compares to data Google Maps gathered about WiFi access points • Or get closest known public router based on IP address
  • 16. 16 4) OAuth2  Add-on to HTML5, built into most Oracle Cloud apps • Not strictly part of the spec, but critical for its future  Think of OAuth2 as the “valet key for the web” • Grants limited access to specific resources, without giving it all away  OAuth2 process: 1.An application requests authorization on a user's behalf. 2.The application obtains a Grant Token. 3.The client requests an Access Token by using the Grant Token. 4.The authorization server validates the Grant Token and issues an Access Token and a Refresh Token. 5.The client requests the protected resource, authenticating using the Access Token. 6.The resource server verifies the Access Token and serves the request.
  • 18. 18 5) Cross Origin Resource Sharing  Previously, AJAX calls could only go back to original server • Probably the most irritating security ‘feature’ in HTML4  Could not host HTML and JS on two domains without hacks • Google Maps was ‘hackable’ but most sites were not • Each loaded JavaScript file needed a ‘callback’ to load • Every developer had to roll their own callback API  Now, new HTTP header to load sources from multiple servers • Access-Control-Allow-Origin: *
  • 19. 5) Cross Origin Resource Sharing, cont.  Use standard AJAX objects across domains var req = new XmlHTTPRequest(); req.open("POST", "http://example.org");  Use new window.postMessage to message across domains window.postMessage("hello world!", "http://example.org"); function receiveMessage(event) { // minimal security checks if (event.origin !== "http://example.org") return; alert(event.data); } window.addEventListener("message", receiveMessage, false); 19
  • 20. 20 6) Advanced Web Forms  HTML5 adds form options that have been sorely needed for decades  New input types • url, tel(telephone number), email, number, color, range, datetime, etc  Automatic in-line validation: critical for mobile web • Use the pattern attribute to do regular expression validation • Also specify min, max, required and a placeholder text <input type="text" id="productId" pattern="[A-Z]{3}[0-9]{3}" placeholder="XXX999" maxlength="6" required/> <input type="number" id="quantity" min="0" max="100" step="1" />
  • 21. 21 7) WebSockets  Web protocols (HTTP) are “stateless” • By design, as soon as the page is drawn, the data might be out of date • How do we know when the data has been updated?  Prior to HTML5, had to use JavaScript to “poll” for new data • JavaScript timeouts to load in new data • Every application/framework had to roll their own • Fairly high overhead, depending on the framework  WebSockets act like normal sockets • Allows back-end HTTP server to “push” new notifications to web front end
  • 22. 7) WebSockets, cont. var connection = new WebSocket('ws://example.com/echo'); connection.onerror = function (error) { alert('WebSocket Error ' + error); }; connection.onmessage = function (e) { alert('Server said: ' + e.data); }; // send a string, binary data, or even a file! connection.send('your message'); var binary = new Uint8Array(img.data.length); connection.send(binary.buffer); var file = document.querySelector('input[type="file"]').files[0]; connection.send(file); 22
  • 23. 23 8) WebWorkers  JavaScript is a single-threaded programming language • All scripts and events handled by one single thread • So if one function takes a long time, the whole web page hangs! • Major reason why JavaScript cant run heavy enterprise apps  The solution? WebWorkers! • Runs in the background, instead of the foreground • No more JavaScript errors from hogging the CPU resources • Send messages from main window to worker window
  • 24. 8) WebWorkers, cont.  Typically, the main page will start a worker, and post JSON formatted messages to it • Binary data in buffers can also be transferred <output id="result"></output> <script> var worker = new Worker('doWork.js'); worker.addEventListener('message', function(e) { document.getElementById('result').textContent = e.data; }, false); worker.postMessage({'cmd':'doStuff', 'msg':'my message...'}); worker.terminate(); </script> 24
  • 25. 8) WebWorkers, cont.  The worker page (doWork.js) creates an event listener, and responds to messages from the main page by posing a message to the ‘self’ object: self.addEventListener('message', function(e) { var data = e.data; switch (data.cmd) { case 'doStuff': self.postMessage('DOING STUFF: ' + data.msg); break; default: self.postMessage('Unknown command: ' + data.msg); }; }, false); 25
  • 26. 8) WebWorkers, cont.  For security, performance, and thread-safety a web worker has more limited access to JavaScript functions  The following objects are not available: • The DOM (it's not thread-safe) • The window object • The document object • The parent object 26
  • 27. 27 9) Audio and Video Support  New elements: <video> ,<audio>, and <track>  Mostly eliminates the need for JavaFX, Flash, or Silverlight  HTML5 is now the enterprise video/audio standard • http://www.ramp.com/enterprise/the-dawn-of-html5-video-as-the- enterprise-standard/  YouTube made HTML5 its default delivery platform in 2015 • http://youtube-eng.blogspot.com/2015/01/youtube-now-defaults-to- html5_27.html
  • 28. 28 9) Audio and Video Support, cont.  YouTube wanted to make the jump years ago, but several pieces were missing that have been recently added: • Fullscreen mode • WebRTC: real time video communication between browsers • Google hangouts • Encrypted media extensions • Adaptive Bitrate: downgrade to lower video quality based on bandwidth • MediaSource extensions: allow JavaScript to create and manage streams
  • 29. 29 10) Custom DOM Elements and Attributes  In addition to semantic HTML, you can make your own custom elements and attributes • Make HTML more like XML, and avoid pages of <div> soup  Custom elements can be declared in the HTML like others: <my-elem></my-elem>  The behavior of the custom element is like the <span> tag, until you register the element and its behavior: var myElem = document.registerElement('my-elem', { prototype: Object.create(HTMLElement.prototype) }); document.body.appendChild(new myElem()); ;
  • 30. 30 10) Custom DOM Elements and Attributes, cont.  Custom data attributes can be added to all elements: <div id="foo" data-my-attribute="bar"></div>  Access data with the standard getAttribute function: var foo = document.getElementById('foo'); var data = plant.getAttribute('data-my-attribute');  Limitations and best practices: • Custom elements must contain a dash • Ensures it will be compatible with future HTML6 tags • Custom attributes must start with data- • HTML5 spec strongly states that data attributes be PRIVATE to that page • Only JavaScript on that page should interact with those attributes • Should not be considered a replacement for microformats • IE 11 supports custom attributes, not custom elements (yet)
  • 31. 31 Tips & Tricks  HTML5 opens new security holes that need to be plugged • WebSockets and Cross Origin Resource Sharing in particular • Never, ever, ever assume LocalStorage can be trusted! • https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet  Double check for browser compatability • Check http://caniuse.com/ to verify  Performance will likely be an issue for a while • Plan on using web workers a lot!
  • 32. 32 HTML5 Frameworks to Use  Oracle JavaScript Extension Toolkit (JET) • Lightweight JS framework for Oracle apps • Use in Oracle Dev cloud, Social cloud  jQuery • Most battle-tested HTML/JS framework • Uses HTML5 features when possible, or downgrades to HTML4 for older browsers  Node.js • Front end and back end JavaScript framework • More free developer packages that Ruby, Python, or Rails  All can be added to DEV cloud or Sites cloud
  • 33. 33  My Company: http://bezzotech.com  My Blog: http://bexhuff.com  My Self: bex@bezzotech.com Questions?