single page apps and the future of history michael
play

Single Page Apps and the Future of History Michael Mahemoff 1 of - PowerPoint PPT Presentation

Single Page Apps and the Future of History Michael Mahemoff 1 of 133 The App-fication of everything 2 of 133 The SPA-fication of everything 3 of 133 The SPA-fication of everything 4 of 133 How did we get here? 5 of 133 How did we get


  1. Single Page Apps and the Future of History Michael Mahemoff 1 of 133

  2. The App-fication of everything 2 of 133

  3. The SPA-fication of everything 3 of 133

  4. The SPA-fication of everything 4 of 133

  5. How did we get here? 5 of 133

  6. How did we get here? 6 of 133

  7. Fat Clients 7 of 133

  8. 8 of 133

  9. 9 of 133

  10. 10 of 133

  11. App or Not? 11 of 133

  12. 12 of 133

  13. Mapnificent 13 of 133

  14. Twitter 14 of 133

  15. Frantic 15 of 133

  16. A wikipedia app? 16 of 133

  17. 17 of 133

  18. 18 of 133

  19. 19 of 133

  20. Reader Apps - SPA 20 of 133

  21. Geo Apps - SPA 21 of 133

  22. Games - SPA 22 of 133

  23. So, how *did* we get here? 23 of 133

  24. Web 0.0.0.1: Just like a magazine, only 56kbps! 24 of 133

  25. Forms and Hyperlinks 25 of 133

  26. HotMail: A 1997 Web App 26 of 133

  27. The Dancing Bears of Web 1.0 27 of 133

  28. Talk to the cloud? 28 of 133

  29. Work a bit Click on a link Are we there yet? 29 of 133

  30. Interactive? Don't even think about it 30 of 133

  31. No really. 31 of 133

  32. A New Architecture for Web Apps 32 of 133

  33. ! Asynchronous ! 33 of 133

  34. 34 of 133

  35. Clean architecture 35 of 133

  36. Less data 36 of 133

  37. Mobile: Save bandwidth 37 of 133

  38. 38 of 133

  39. Sencha Touch 39 of 133

  40. Offline-friendly 40 of 133

  41. The biggest reason 41 of 133

  42. 42 of 133

  43. 43 of 133

  44. More SPA! Less Refresh! 44 of 133

  45. 45 of 133

  46. G Gr ro ok kk ki in ng g t th he e D DO OM M 46 of 133

  47. B Bu us si in ne es ss s L Lo og gi ic c 47 of 133

  48. R Re ev ve ea al li in ng g c co on nt te en nt t 48 of 133

  49. New UI elements 49 of 133

  50. S St ty yl li in ng g 50 of 133

  51. L La ay ye er ri in ng g 51 of 133

  52. Animation 52 of 133

  53. Drag-Drop File APIs 53 of 133

  54. Better browsers ! less memory leaks 54 of 133

  55. Application Cache 55 of 133

  56. Client Side Storage 56 of 133

  57. 57 of 133

  58. Auto-Saving 58 of 133

  59. Server queries 59 of 133

  60. Autocomplete 60 of 133

  61. Auto-Refresh 61 of 133

  62. Lightboxen 62 of 133

  63. iFrame Renaissance 63 of 133

  64. Cross-Domain 64 of 133

  65. h ht tt tp p: :/ // /a ap pi i. .g ge eo on na am me es s. .o or rg g/ /f fi in nd dN Ne J JS SO ea ON ar NP rB By P yW We ea at th he er rJ JS SO ON N? ?l la at t= =5 51 1& &l ln ng g= =0 0& & u us se er rn na am me e= =d de em mo o& &c ca al ll lb ba ac ck k= =o on nw we ea at th he er r 65 of 133

  66. o on nw we ea at th he er r( ({ {" "w we ea at th he er rO Ob bs se er rv va at ti io on n" ": : { {" "c cl lo ou ud ds s" ": :" "n n/ /a a" ", ," "w we ea at th he er rC Co on nd di it ti io on n" ": :" "n n/ /a a" ", ," "o ob bs se er rv va at ti io on n" ": :" "E EG GK KK K 0 02 21 13 32 20 0Z Z 0 04 40 01 16 6K KT T 0 02 20 0V V1 11 10 0 6 60 00 00 0 N NS SC C 0 07 7/ /0 01 1 Q Q1 10 03 34 4" ", ," "w wi in nd dD Di ir re ec ct ti io on n" ": :4 40 0, ," "I IC CA AO O" ": :" "E EG GK KK K" ", ," "e el le ev va at ti io on n" ": :6 62 2, ," "c co ou un nt tr ry yC Co od de e / / G Ga at tw wi ic ck k A Ai ir rp po or rt t" ", ," "d da at te et ti im me e" ": :" "2 20 01 11 1- -0 03 3- -0 02 2 1 13 3: :2 20 0: :0 00 0" ", ," "l la at t" ": :5 51 1. .1 13 33 33 33 33 33 33 33 33 33 33 33 33 3, ," "h he ec ct to oP Pa as sc cA Al lt ti im me et te er r" ": :1 10 03 34 4} }} }) ); ; 66 of 133

  67. Comet 67 of 133

  68. Easy Reliable Secure Performant 68 of 133

  69. CORS http://enable-cors.org/ 69 of 133

  70. oEmbed 70 of 133

  71. Cross-Document Messaging 71 of 133

  72. OAuth 72 of 133

  73. OAuth 2 73 of 133

  74. SPArchitecture Options 74 of 133

  75. 0. Conventional Website: Browser-Server 75 of 133

  76. 1. Serverless SPA 76 of 133

  77. 2. UI Services 77 of 133

  78. 3. Semantic Services 78 of 133

  79. Separation of Concerns 79 of 133

  80. REST 80 of 133

  81. And the REST is History ... 81 of 133

  82. Single Page means Single URL? 82 of 133

  83. Bookmarking, Back Button, Tweeting, etc. 83 of 133

  84. The Magic Hash 84 of 133

  85. T Th he e M Ma ag gi ic c H Ha as sh h: : S Sw wi it tc ch hi in ng g U UR RL Ls s document.location="http://example.com/#movies"; document.location.hash = "#movies"; // same thing" http://example.com/#movies http://example.com/#books http://example.com/#music 85 of 133

  86. C Co oo ol le er r U UR RL Ls s? ? http://example.com/#/books http://example.com/#/search/gladwell http://example.com/#/books/gladwell-genius 86 of 133

  87. H Ha as sh hB Ba an ng g U UR RL Ls s http://example.com/#!books http://example.com/#!search/gladwell http://example.com/#!books/gladwell-genius 87 of 133

  88. 88 of 133

  89. #HashBangHell 89 of 133

  90. uncool URL can't easily edit URL weird scrolling issues 90 of 133

  91. But the real problem ... 91 of 133

  92. empty 92 of 133

  93. <html> <head> <title>My amazing app</title> <script> window.onload = function() { if (document.location.pathname.match(/^\/search/(.+)$)) { // show the search } }; </script> </head> <body> <!-- Empty body --> </body> </html> 93 of 133

  94. No-JS browsers? Search engines? Other clients? 94 of 133

  95. HTML5: The Future of History 95 of 133

  96. H Hi is st to or ry y A AP PI I history.pushState( {search: "rainbows"}, "Items containing 'rainbows'", "/search/rainbows" ); 96 of 133

  97. A Ab bu us si in ng g t th he e H HT TM ML L5 5 H Hi is st to or ry y A AP PI I f fo or r f fu un n ( (a an nd d c ch ha ao os s) ) 97 of 133

  98. 98 of 133

  99. GitHub Source: https://gist.github.com/730603 99 of 133

  100. B Be es st t o of f b bo ot th h w wo or rl ld ds s: : S SP PA A U UX X + + T Tr ru ue e U UR RL Ls s http://example.com/# ! /search/rainbows http://example.com/search/rainbows 100 of 133

Recommend


More recommend