SlideShare une entreprise Scribd logo
1  sur  68
Faster   websites      with
AJAX REST   and

architecture
    Optimera STHLM
          2010-05-31
Stefan Pettersson
Stefan Pettersson
                  @stpe
    stefpet@gmail.com
          http://stpe.se
HTML


CSS      JavaScript
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly




WebServer

          DB
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly




WebServer                HEAVY Java?

          DB
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly




WebServer                Weird .NET?

          DB
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly




WebServer                Chaotic PHP?

          DB
<a href=”#”
      HTML              onclick=”globalPollution();”
                        style=”font-size: 666px”>



CSS      JavaScript               Ugly




WebServer                Maybe MVC...?

          DB
View

             Model

Controller
2001?
C   C   C   C   C
V   V       V       V       V       V   V   V




        C       C       C       C       C
V   V       V       V       V       V   V   V


                                            V


                                            V




        C       C       C       C       C
V       V       V       V       V           V   V       V


                                        M       M       V

                    M       M
    M   M                                   M           V
                                    M
                M                                   M




            C       C       C           C       C
V       V       V         V         V           V     V         V


                                DAO         M
                                                DAO   M         V

                     M          M                     DAO
    M   M                                       M               V
        DAO               DAO
                                        M
                M                               DAO       M
DAO
                                        DAO
                    DAO                                   DAO



            C       C           C           C         C
V       V       V         V         V           V      V         V
                                         PM                 PM
                            PM
                      PM         DAO         M
                                                 DAO    M         V
PM       PM
                 PM M            M                 PM   DAO
     M    M                                      M                 V
         DAO               DAO
                                         M                       PM
                 M                               DAO       M
 DAO                             PM DAO
                     DAO                                   DAO



             C       C           C           C         C
Jaha?
Separation of
  concerns
Presentationslogik i
    browsern
Separera data från flöde
AJAX + REST
Enklare arkitektur
Flexiblare arkitektur
Snabbare sidor
HTML

           CSS

         JavaScript




                      RESTful
 Web                   Web
Server                Service
                          DB
HTML

             CSS

           JavaScript

Template



                        RESTful
  Web                    Web
 Server                 Service
                            DB
HTML

             CSS

           JavaScript

Template                 Data



                        RESTful
  Web                    Web
 Server                 Service
                            DB
Template?
The fundamentalist way...
<!DOCTYPE html>
<html>
<head>
  <title>ThinServer</title>
  <script src=”bootstrap.js”></script>
</head>
<body>
</body>
</html>
REST
Representational State Transfer
No bullshit web
  services!
HTTP
http://server.com/item/17/
XML
JSON
AJAX
XMLHttpRequest
// get XHR object (older IE needs workaround)
var xhr = new XMLHttpRequest();

xhr.open('GET', '/item/17/', true);
xhr.onreadystatechange = function(event) {
   if (xhr.readyState == 4) {
      if (xhr.status == 200) {
        console.log(xhr.responseText);
      } else {
        console.log("Fail");
      }
   }
};

// initiate request
xhr.send(null);
Same Domain Policy
JSONP
{“data”: [1, 2, 3]}
callback({“data”: [1, 2, 3]});
callback({“data”: [1, 2, 3]});


 <script type=”text/javascript”
   src=”http://d.com/item/17/?callback=callback”>
 </script>
Browser


   Data



 RESTful
Web Service
Browser


   Data



 RESTful
Web Service



 Database
Browser


       Data



     RESTful
    Web Service


   Enterprise SOA
     Producers
           Consumers
Queues Buses
Browser


   Data



 RESTful
Web Service



  NoSQL
Browser


   Data



 RESTful
Web Service
Internal System


     Data



  RESTful
 Web Service
Web Server


   Data



 RESTful
Web Service
Mobile


   Data



 RESTful
Web Service
One more thing...
document.write is evil
Friendly IFrame
http://blogg.aftonbladet.se/dev/
Stefan Pettersson
     CEO @ Expansive Worlds AB
http://www.expansiveworlds.com

Contenu connexe

Similaire à OPTIMERA STHLM! Stefan Pettersson

Be German About Your Frontend
Be German About Your FrontendBe German About Your Frontend
Be German About Your Frontend
Arush Sehgal
 
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
Mário Valente
 
Modern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScriptModern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScript
martinlippert
 

Similaire à OPTIMERA STHLM! Stefan Pettersson (20)

LA RubyConf 2009 Waves And Resource-Oriented Architecture
LA RubyConf 2009 Waves And Resource-Oriented ArchitectureLA RubyConf 2009 Waves And Resource-Oriented Architecture
LA RubyConf 2009 Waves And Resource-Oriented Architecture
 
The Modern Web, Part 2: HTML5
The Modern Web, Part 2: HTML5The Modern Web, Part 2: HTML5
The Modern Web, Part 2: HTML5
 
Design for scalability with hmvc
Design for scalability with hmvcDesign for scalability with hmvc
Design for scalability with hmvc
 
µjax in 30 minutes
µjax in 30 minutesµjax in 30 minutes
µjax in 30 minutes
 
Be German About Your Frontend
Be German About Your FrontendBe German About Your Frontend
Be German About Your Frontend
 
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
Serverside Javascript - Hope and Opportunity (Introducing Starbucks JS Web Fr...
 
noSql + rest: Arquitetura Contemporanea
noSql + rest: Arquitetura ContemporaneanoSql + rest: Arquitetura Contemporanea
noSql + rest: Arquitetura Contemporanea
 
µjax in 30 minutes (for Stockholm)
µjax in 30 minutes (for Stockholm)µjax in 30 minutes (for Stockholm)
µjax in 30 minutes (for Stockholm)
 
µjax in 30 minutes (for Stockholm)
µjax in 30 minutes (for Stockholm)µjax in 30 minutes (for Stockholm)
µjax in 30 minutes (for Stockholm)
 
JavaScript Basics with baby steps
JavaScript Basics with baby stepsJavaScript Basics with baby steps
JavaScript Basics with baby steps
 
Architectures For Scaling Ajax
Architectures For Scaling AjaxArchitectures For Scaling Ajax
Architectures For Scaling Ajax
 
Modern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScriptModern Architectures with Spring and JavaScript
Modern Architectures with Spring and JavaScript
 
GTUG JS will save us all
GTUG JS will save us allGTUG JS will save us all
GTUG JS will save us all
 
WordCamp Cologne - WordPress auf SPEED
WordCamp Cologne - WordPress auf SPEEDWordCamp Cologne - WordPress auf SPEED
WordCamp Cologne - WordPress auf SPEED
 
人人网技术架构的演进
人人网技术架构的演进人人网技术架构的演进
人人网技术架构的演进
 
Rails in the Cloud
Rails in the CloudRails in the Cloud
Rails in the Cloud
 
Ruby on Rails in UbiSunrise
Ruby on Rails in UbiSunriseRuby on Rails in UbiSunrise
Ruby on Rails in UbiSunrise
 
Pane web & salame 2
Pane web & salame 2Pane web & salame 2
Pane web & salame 2
 
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Ra...
 Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Ra... Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Ra...
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Ra...
 
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...
Container Days 2017 Hamburg - Plesk - How Docker helps tune Websites into Rac...
 

Plus de .SE (Stiftelsen för Internetinfrastruktur)

Plus de .SE (Stiftelsen för Internetinfrastruktur) (17)

Optimera STHLM 2011 - Tobias Järlund, Aftonbladet
Optimera STHLM 2011 - Tobias Järlund, AftonbladetOptimera STHLM 2011 - Tobias Järlund, Aftonbladet
Optimera STHLM 2011 - Tobias Järlund, Aftonbladet
 
Optimera STHLM 2011 - Ragnar Lönn, Load Impact
Optimera STHLM 2011 - Ragnar Lönn, Load ImpactOptimera STHLM 2011 - Ragnar Lönn, Load Impact
Optimera STHLM 2011 - Ragnar Lönn, Load Impact
 
Optimera STHLM 2011 - Mikael Berggren, Spotify
Optimera STHLM 2011 - Mikael Berggren, SpotifyOptimera STHLM 2011 - Mikael Berggren, Spotify
Optimera STHLM 2011 - Mikael Berggren, Spotify
 
Optimera STHLM 2011 - Måns Jonasson
Optimera STHLM 2011 - Måns JonassonOptimera STHLM 2011 - Måns Jonasson
Optimera STHLM 2011 - Måns Jonasson
 
Tobbe Eklöv
Tobbe EklövTobbe Eklöv
Tobbe Eklöv
 
Per Blixt
Per BlixtPer Blixt
Per Blixt
 
Kurtis Lindqvist
Kurtis LindqvistKurtis Lindqvist
Kurtis Lindqvist
 
Anders Rafting
Anders RaftingAnders Rafting
Anders Rafting
 
Anders Örtengren
Anders ÖrtengrenAnders Örtengren
Anders Örtengren
 
OPTIMERA STHLM! Henrik Nordström
OPTIMERA STHLM! Henrik NordströmOPTIMERA STHLM! Henrik Nordström
OPTIMERA STHLM! Henrik Nordström
 
OPTIMERA STHLM! Jacob Hansson
OPTIMERA STHLM! Jacob HanssonOPTIMERA STHLM! Jacob Hansson
OPTIMERA STHLM! Jacob Hansson
 
OPTIMERA STHLM! Isac Lagerblad
OPTIMERA STHLM! Isac LagerbladOPTIMERA STHLM! Isac Lagerblad
OPTIMERA STHLM! Isac Lagerblad
 
OPTIMERA STHLM! Fleecelabs
OPTIMERA STHLM! FleecelabsOPTIMERA STHLM! Fleecelabs
OPTIMERA STHLM! Fleecelabs
 
OPTIMERA STHLM! Martin Källström
OPTIMERA STHLM! Martin KällströmOPTIMERA STHLM! Martin Källström
OPTIMERA STHLM! Martin Källström
 
OPTIMERA STHLM! Daniel Stenberg
OPTIMERA STHLM! Daniel StenbergOPTIMERA STHLM! Daniel Stenberg
OPTIMERA STHLM! Daniel Stenberg
 
OPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! LoadimpactOPTIMERA STHLM! Loadimpact
OPTIMERA STHLM! Loadimpact
 
OPTIMERA STHLM! Måns Jonasson
OPTIMERA STHLM! Måns JonassonOPTIMERA STHLM! Måns Jonasson
OPTIMERA STHLM! Måns Jonasson
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 

OPTIMERA STHLM! Stefan Pettersson

Notes de l'éditeur

  1. M&amp;M p&amp;#xE5;se?
  2. M&amp;M p&amp;#xE5;se?
  3. M&amp;M p&amp;#xE5;se?
  4. M&amp;M p&amp;#xE5;se?
  5. M&amp;M p&amp;#xE5;se?
  6. M&amp;M p&amp;#xE5;se?
  7. M&amp;M p&amp;#xE5;se?
  8. M&amp;M p&amp;#xE5;se?
  9. M&amp;M p&amp;#xE5;se?
  10. M&amp;M p&amp;#xE5;se?
  11. M&amp;M p&amp;#xE5;se?
  12. M&amp;M p&amp;#xE5;se?
  13. M&amp;M p&amp;#xE5;se?
  14. M&amp;M p&amp;#xE5;se?
  15. M&amp;M p&amp;#xE5;se?
  16. M&amp;M p&amp;#xE5;se?
  17. M&amp;M p&amp;#xE5;se?
  18. M&amp;M p&amp;#xE5;se?
  19. M&amp;M p&amp;#xE5;se?
  20. M&amp;M p&amp;#xE5;se?
  21. M&amp;M p&amp;#xE5;se?
  22. M&amp;M p&amp;#xE5;se?
  23. M&amp;M p&amp;#xE5;se?
  24. M&amp;M p&amp;#xE5;se?
  25. M&amp;M p&amp;#xE5;se?
  26. M&amp;M p&amp;#xE5;se?
  27. M&amp;M p&amp;#xE5;se?
  28. M&amp;M p&amp;#xE5;se?
  29. M&amp;M p&amp;#xE5;se?
  30. M&amp;M p&amp;#xE5;se?
  31. M&amp;M p&amp;#xE5;se?
  32. M&amp;M p&amp;#xE5;se?
  33. M&amp;M p&amp;#xE5;se?
  34. M&amp;M p&amp;#xE5;se?
  35. M&amp;M p&amp;#xE5;se?
  36. M&amp;M p&amp;#xE5;se?
  37. M&amp;M p&amp;#xE5;se?
  38. M&amp;M p&amp;#xE5;se?
  39. M&amp;M p&amp;#xE5;se?
  40. M&amp;M p&amp;#xE5;se?
  41. M&amp;M p&amp;#xE5;se?
  42. M&amp;M p&amp;#xE5;se?
  43. M&amp;M p&amp;#xE5;se?
  44. M&amp;M p&amp;#xE5;se?
  45. M&amp;M p&amp;#xE5;se?