SlideShare a Scribd company logo
Wednesday, September 5, 12
Know Your History(API)
                             Using HTML5 History API to Ajaxify
                                   your Magnolia WebSite



Wednesday, September 5, 12
Agenda
              • The story of when I realized I needed to learn more
                about the history API
              • A stupidly simple example of the code in action
              • A walkthrough of our product tour redesign
              • How it works with magnolia



Wednesday, September 5, 12
About Me
              • William Paoli
              • Front End Web Developer
              • From San Francisco,
                California, USA
              • wpaoli@atlassian.com



Wednesday, September 5, 12
How we work together



              Interactive Marketing Team
            Designers and Web Developers




Wednesday, September 5, 12
How we work together



              Interactive Marketing Team   Product Marketing Managers
            Designers and Web Developers




Wednesday, September 5, 12
How we work together



              Interactive Marketing Team   Product Marketing Managers   Demand Generation
            Designers and Web Developers




Wednesday, September 5, 12
The Website is our
                                Salesperson



Wednesday, September 5, 12
The Atlassian Redesign

              We wanted to go from “This” to “This"

                             August 2012




Wednesday, September 5, 12
The Atlassian Redesign

              We wanted to go from “This” to “This"

                             1,800,000 Visits




Wednesday, September 5, 12
The Atlassian Redesign

              We wanted to go from “This” to “This"

                             4,006,000 Pageviews




Wednesday, September 5, 12
The Atlassian Redesign

              We wanted to go from “This” to “This"




Wednesday, September 5, 12
The Big Redesign



Wednesday, September 5, 12
The Concerns
              • SEO
              • Clean URLS
              • Clean UI
              • Great Performance




Wednesday, September 5, 12
The Concerns
              • SEO
              • Clean URLS
              • Clean UI
              • Great Performance




Wednesday, September 5, 12
The Conversation



Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Wednesday, September 5, 12
Requirements of New Product Tour

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
“DUDE, you
                             are using
                             the
                             HISTORY
                             API Right?”
Wednesday, September 5, 12
Of course I am, duh...



Wednesday, September 5, 12
Of course I am, duh...
                                So uh...what’s the
                                  History API?

Wednesday, September 5, 12
Wednesday, September 5, 12
window.history.length - returns the number of items

              window.history.go(n)- go forward/backward any number

              window.history.back()- go back

              window.history.forward()- go forward

              window.history.pushState(data, title, url)

              window.history.replaceState(data, title, url)



Wednesday, September 5, 12
window.history.length - returns the number of items

              window.history.go(n)- go forward/backward any number

              window.history.back()- go back

              window.history.forward()- go forward

              window.history.pushState(data, title, url)

              window.history.replaceState(data, title, url)



Wednesday, September 5, 12
window.history.length - returns the number of items

              window.history.go(n)- go forward/backward any number

              window.history.back()- go back

              window.history.forward()- go forward

              window.history.pushState(data, title, url)

              window.history.replaceState(data, title, url)



Wednesday, September 5, 12
history.pushState(data,title,url)




Wednesday, September 5, 12
history.pushState(data,title,url)
                               {tabName:‘foo’}
                             Adds to history.state




Wednesday, September 5, 12
history.pushState(data,title,url)
                                  {tabName:‘foo’}
                             Currently Not Implemented




Wednesday, September 5, 12
history.pushState(data,title,url)
                                  {tabName:‘foo’}


                             Used to modify window.location




Wednesday, September 5, 12
history.pushState(data,title,url)
                               {tabName:‘foo’}


                                       AKA “Fake” URLS




Wednesday, September 5, 12
history.pushState(data,title,url);
                         history.replaceState(data,title,url);




Wednesday, September 5, 12
history.pushState(data,title,url);
                         history.replaceState(data,title,url);
                         window.onpopstate = function(){}



Wednesday, September 5, 12
A useless example that
                        hopefully illustrates
                          how this works


Wednesday, September 5, 12
Level 1
                             Old Skool Style


Wednesday, September 5, 12
Demo of static tabs
              (reload each time)




Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Static Site Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Level 2
                        Get Some jQuery up in there!




Wednesday, September 5, 12
JS tab solution




Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
JS Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Level 3
           Let’s add that History thing William keeps talking about




Wednesday, September 5, 12
History API to the Rescue


                history.pushState(data,title, url)




Wednesday, September 5, 12
History API’d tab solution




Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API’d Tab Report Card

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Level 4
                             Put it all together!




Wednesday, September 5, 12
History API’d tab + Static Pages
               behind the fake urls solution




Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
History API Tab with Static Behnd

                             Great User Experience
                             Easy to Read and Real URLs
                             Search Engine Friendly/Discoverability
                             Unique page titles for each tab
                             Unique Description and Keywords available

                             Don’t Break Back Button


Wednesday, September 5, 12
Dude, um did you forget
                            IE again?!



Wednesday, September 5, 12
There’s a plugin for that




Wednesday, September 5, 12
Main Points to this
              • HTML5 History api is very valuable
              • We can now create ajax pages that have clean urls and
                is able to be search engine optimised
              • We made people happy!




Wednesday, September 5, 12
Whose Happy?




Wednesday, September 5, 12
Whose Happy?
                             Jeff the Designer is Happy!




Wednesday, September 5, 12
Whose Happy?
                             Jeff the Designer is Happy!



                                      Mr “SEO” Joe is happy!




Wednesday, September 5, 12
Whose Happy?
                             Jeff the Designer is Happy!



                                      Mr “SEO” Joe is happy!



           The Users of atlassian.com are Happy!



Wednesday, September 5, 12
Thanks for listening!



Wednesday, September 5, 12
Questions?



Wednesday, September 5, 12
Be sure to check out:
                                 Continuous Media Playback and
                                       RequireJS Modules
                                           David Pronk
                   David Pronk




Wednesday, September 5, 12

More Related Content

More from bkraft

Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websites
bkraft
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnolia
bkraft
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile banking
bkraft
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris
bkraft
 
Magnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 KeynoteMagnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 Keynote
bkraft
 

More from bkraft (20)

Magnolia Conference 2013: Keynote
Magnolia Conference 2013: KeynoteMagnolia Conference 2013: Keynote
Magnolia Conference 2013: Keynote
 
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
 
Webinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITWebinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For IT
 
Increase Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop ModuleIncrease Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop Module
 
Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013
 
High performance and scalability
High performance and scalability High performance and scalability
High performance and scalability
 
Multilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesMultilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pages
 
Blossom on the web
Blossom on the webBlossom on the web
Blossom on the web
 
Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websites
 
Work life balance
Work life balanceWork life balance
Work life balance
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnolia
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile banking
 
MBC Group - Magnolia in the Media
MBC Group - Magnolia in the MediaMBC Group - Magnolia in the Media
MBC Group - Magnolia in the Media
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris
 
Bridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured SoftwareBridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured Software
 
Enterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's ImagingEnterprise Extensions to Magnolia's Imaging
Enterprise Extensions to Magnolia's Imaging
 
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design ProcessHow the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
 
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest RetailerMigros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
Migros.ch - Modularizing Magnolia for Switzerland's Largest Retailer
 
How AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use MagnoliaHow AngryNerds Convinced Atlassian to Use Magnolia
How AngryNerds Convinced Atlassian to Use Magnolia
 
Magnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 KeynoteMagnolia 5 Magnolia Conference 2012 Keynote
Magnolia 5 Magnolia Conference 2012 Keynote
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 

HTML5 History api to Ajaxify your Magnolia Website

  • 2. Know Your History(API) Using HTML5 History API to Ajaxify your Magnolia WebSite Wednesday, September 5, 12
  • 3. Agenda • The story of when I realized I needed to learn more about the history API • A stupidly simple example of the code in action • A walkthrough of our product tour redesign • How it works with magnolia Wednesday, September 5, 12
  • 4. About Me • William Paoli • Front End Web Developer • From San Francisco, California, USA • wpaoli@atlassian.com Wednesday, September 5, 12
  • 5. How we work together Interactive Marketing Team Designers and Web Developers Wednesday, September 5, 12
  • 6. How we work together Interactive Marketing Team Product Marketing Managers Designers and Web Developers Wednesday, September 5, 12
  • 7. How we work together Interactive Marketing Team Product Marketing Managers Demand Generation Designers and Web Developers Wednesday, September 5, 12
  • 8. The Website is our Salesperson Wednesday, September 5, 12
  • 9. The Atlassian Redesign We wanted to go from “This” to “This" August 2012 Wednesday, September 5, 12
  • 10. The Atlassian Redesign We wanted to go from “This” to “This" 1,800,000 Visits Wednesday, September 5, 12
  • 11. The Atlassian Redesign We wanted to go from “This” to “This" 4,006,000 Pageviews Wednesday, September 5, 12
  • 12. The Atlassian Redesign We wanted to go from “This” to “This" Wednesday, September 5, 12
  • 13. The Big Redesign Wednesday, September 5, 12
  • 14. The Concerns • SEO • Clean URLS • Clean UI • Great Performance Wednesday, September 5, 12
  • 15. The Concerns • SEO • Clean URLS • Clean UI • Great Performance Wednesday, September 5, 12
  • 26. Requirements of New Product Tour Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 27. “DUDE, you are using the HISTORY API Right?” Wednesday, September 5, 12
  • 28. Of course I am, duh... Wednesday, September 5, 12
  • 29. Of course I am, duh... So uh...what’s the History API? Wednesday, September 5, 12
  • 31. window.history.length - returns the number of items window.history.go(n)- go forward/backward any number window.history.back()- go back window.history.forward()- go forward window.history.pushState(data, title, url) window.history.replaceState(data, title, url) Wednesday, September 5, 12
  • 32. window.history.length - returns the number of items window.history.go(n)- go forward/backward any number window.history.back()- go back window.history.forward()- go forward window.history.pushState(data, title, url) window.history.replaceState(data, title, url) Wednesday, September 5, 12
  • 33. window.history.length - returns the number of items window.history.go(n)- go forward/backward any number window.history.back()- go back window.history.forward()- go forward window.history.pushState(data, title, url) window.history.replaceState(data, title, url) Wednesday, September 5, 12
  • 35. history.pushState(data,title,url) {tabName:‘foo’} Adds to history.state Wednesday, September 5, 12
  • 36. history.pushState(data,title,url) {tabName:‘foo’} Currently Not Implemented Wednesday, September 5, 12
  • 37. history.pushState(data,title,url) {tabName:‘foo’} Used to modify window.location Wednesday, September 5, 12
  • 38. history.pushState(data,title,url) {tabName:‘foo’} AKA “Fake” URLS Wednesday, September 5, 12
  • 39. history.pushState(data,title,url); history.replaceState(data,title,url); Wednesday, September 5, 12
  • 40. history.pushState(data,title,url); history.replaceState(data,title,url); window.onpopstate = function(){} Wednesday, September 5, 12
  • 41. A useless example that hopefully illustrates how this works Wednesday, September 5, 12
  • 42. Level 1 Old Skool Style Wednesday, September 5, 12
  • 43. Demo of static tabs (reload each time) Wednesday, September 5, 12
  • 44. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 45. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 46. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 47. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 48. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 49. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 50. Static Site Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 51. Level 2 Get Some jQuery up in there! Wednesday, September 5, 12
  • 52. JS tab solution Wednesday, September 5, 12
  • 53. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 54. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 55. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 56. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 57. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 58. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 59. JS Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 60. Level 3 Let’s add that History thing William keeps talking about Wednesday, September 5, 12
  • 61. History API to the Rescue history.pushState(data,title, url) Wednesday, September 5, 12
  • 62. History API’d tab solution Wednesday, September 5, 12
  • 63. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 64. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 65. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 66. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 67. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 68. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 69. History API’d Tab Report Card Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 70. Level 4 Put it all together! Wednesday, September 5, 12
  • 71. History API’d tab + Static Pages behind the fake urls solution Wednesday, September 5, 12
  • 72. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 73. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 74. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 75. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 76. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 77. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 78. History API Tab with Static Behnd Great User Experience Easy to Read and Real URLs Search Engine Friendly/Discoverability Unique page titles for each tab Unique Description and Keywords available Don’t Break Back Button Wednesday, September 5, 12
  • 79. Dude, um did you forget IE again?! Wednesday, September 5, 12
  • 80. There’s a plugin for that Wednesday, September 5, 12
  • 81. Main Points to this • HTML5 History api is very valuable • We can now create ajax pages that have clean urls and is able to be search engine optimised • We made people happy! Wednesday, September 5, 12
  • 83. Whose Happy? Jeff the Designer is Happy! Wednesday, September 5, 12
  • 84. Whose Happy? Jeff the Designer is Happy! Mr “SEO” Joe is happy! Wednesday, September 5, 12
  • 85. Whose Happy? Jeff the Designer is Happy! Mr “SEO” Joe is happy! The Users of atlassian.com are Happy! Wednesday, September 5, 12
  • 88. Be sure to check out: Continuous Media Playback and RequireJS Modules David Pronk David Pronk Wednesday, September 5, 12