SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Downloaden Sie, um offline zu lesen
State of Ajax
Dion Almaer and Ben Galbraith
Co-founders, Ajaxian.com
“Google Suggest
                           and Google Maps are two
                         examples of a new approach
                        to web applications that we at
                       Adaptive Path have been calling
                       Ajax. The name is shorthand for
    igne
         r!            Asynchronous JavaScript + XML,
Des
                       and it represents a fundamental
                            shift in what’s possible
                                  on the Web.”



              Jesse James Garrett
              Co-founder, Adaptive Path
Compelling User Experience
Make Your User’s Happy
Managing Expectations
Top Grossing Film of 1957   Top Grossing Film of 2007
“Wow” Factor
  Bertrand Serlet
Senior VP, Software
    Apple, Inc.




   WWDC 2006
First Wave of Ajax:
     Making JavaScript Better
and Web App Development Suck Less
XHR
The Old Taxonomy




                                                 Prototype




dojo
                                                 Lightweight Ajax/JavaScript helpers




                                                 GWT
                                                 Hate JavaScript? No problem, use Java.



Your Soup-to-Nuts Ajax/Javascript
            Platform


                                                 jQuery
                                                 New, DOM-centric JavaScript helper
The New Taxonomy




Script.aculo.us           jQuery UI                dijit




Plug-in Community      Plug-in Community     Plug-in Community
   scripteka.com        plugins.jquery.com          dojox




  Prototype                jQuery              Dojo Core
<script type=quot;text/javascriptquot;>
    function getCityByZip(zip) {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            processResults(xhr);
        }
        xhr.open(quot;GETquot;, quot;/fun.endpoint?zip=quot; + zip);
        xhr.send(null);
    }


    function processResults(xhr) {
        if (xhr.readyState == 4) {
            var parent = document.getElementById(quot;cityParentquot;);
            parent.innerHTML = xhr.responseText;
        }
    }
</script>
Easy Remoting



<script type=quot;text/javascriptquot;>
   function getCityByZip(zip) {
       new Ajax.Request(quot;/fun.endpoint?zip=quot; + zip, {
            method: quot;getquot;,
            onSuccess: function(xhr) {
                $(quot;cityquot;).value = xhr.responseText;
            }
       });
   }
</script>
CSS and Animations



dojo.query(quot;#nav > .focusablequot;).
    attr(quot;tabIndexquot;, 0).
    style(quot;borderquot;, quot;1px solid transparentquot;).
    anim({
        quot;borderColorquot;: { start: quot;yellowquot;,
                           end: quot;whitequot; }
    });
DOM Goodness


$(document).bind(quot;readyquot;, function() {


  $(quot;divquot;).bind(quot;mousewheelquot;, function(event, delta) {
    if (delta < 0) {
      $(this).append(quot;upquot;);
    } else {
      $(this).append(quot;downquot;);
       }
  );


});
Dojo Charting

                                Dojo Grid




                Processing.js
Second Wave of Ajax:
   GUI Toolkits for the Web, or
The Browser as Universal Run-time
Mobile Me / SproutCore




                         280 Slides / Objective-J
Jef Raskin
Noted Usability Expert   “ e quality of any [so ware] is
                         ultimately determined by the
                         quality of the interaction between
The Humane Interface     one human and one system.”
“If a system’s one-on-one
     Jef Raskin          interaction with its human user is
Noted Usability Expert

                         not pleasant and facile, the
                         resulting de ciency will poison
The Humane Interface
                         the performance of the entire
                         system, however ne that system
                         might be in its other aspects.
User Interface




                   Visual Design




                 Interaction Design
Jakob Nielsen
Noted Usability Expert

                         “ e basic advice regarding
                         response times has been about the
                         same for thirty years:
“0.1 second is about the limit for
    Jakob Nielsen
Noted Usability Expert   having the user feel that the
                         system is reacting instantaneously,
                         meaning that no special feedback
                         is necessary except to display the
                         result.
Jakob Nielsen
Noted Usability Expert   “1.0 second is about the limit for
                         the user's ow of thought to stay
                         uninterrupted, even though the
                         user will notice the delay.
Jakob Nielsen        “Normally, no special feedback is
Noted Usability Expert

                         necessary during delays of more
                         than 0.1 but less than 1.0 second,
                         but the user does lose the feeling of
                         operating directly on the data.”
Mouse Moved

                           Mouse Pressed

                           Mouse Released

                            Key Pressed

Operating System            Key Released


                           Event Queue




                         tial
                    oten neck
                   P le
                       t
                   Bot


    User Code                               Painting, etc.



                           “UI Thread”
1




                     “UI Thread”




User Interface




                 X   2




                     Background
                       Thread
Mouse Moved

                           Mouse Pressed

                           Mouse Released

                            Key Pressed

Operating System            Key Released


                           Event Queue




                         tial
                    oten neck
                   P le
                       t
                   Bot


    JavaScript                              Web Browsing



                                Browser
1




                     Browser




User Interface




                 X
                 2




                 Background
                   Thread
“Most programmers should run
                         away crying [ om threading].
                         But they don't...
    Brendan Eich
Inventor of JavaScript
    CTO, Mozilla
                         “Instead, as with most other sharp
                         tools, the temptation is to show
                         how big one is by... tempting race-
                         condition fate... Occasionally the
   Brendan’s Blog
                         results are infamous, but too
                         o en, with only virtual ngers
                         and limbs lost, no one learns.
“ reads violate abstractions six
                         ways to Sunday.
    Brendan Eich
Inventor of JavaScript
    CTO, Mozilla
                         “Mainly by creating race
                         conditions, deadlock hazards,
                         and pessimistic locking overhead.

   Brendan’s Blog
                         “And still they don't scale up to
                         handle the megacore tera op
                         future.”
Brendan Eich
Inventor of JavaScript
    CTO, Mozilla




                         “   reads suck.”


   Brendan’s Blog
1




                     Browser




User Interface




                 2




                 Background
                   Thread
1




                                    Browser




User Interface                    Message Passing




                 2                             3




                     WorkerPool                     WorkerPool
1




                                          Browser




User Interface                          Message Passing

                                                3.1 ads”
                                         fox    thre
                                     Fire ker




X
                 2
                                  eb wor             3
                           “W



                     WorkerPool                           WorkerPool
“You just got another
     email from your wife!”
                Macintosh HD




32
Fluid




Gears               Mozilla
                    Prism




        Adobe AIR
Fluid




GreaseMonkey /
   GreaseKit




  37signals’
  Campfire
HTML 5 Canvas
JavaScript Interpreter                      Native Canvas Implementation




                                                                   Retains rendering
                                                                      commands
                         Issues rendering
                            commands




                                                Refreshes screen
                                                 via native APIs
?
?
Google Chrome’s V8   Safari’s SquirrelFish   Firefox’s TraceMonkey   IE?
Browser             Java Plug-in


                          WiiApplet

 JavaScript Dart
     Game
                         WiiTracker



                           wiiusej




                                     JNI




                   wiiuse library
The New Java Plug-in
      Beta Shipping Today with Java 1.6 “Update 10”



1   Java plug-in now out-of-process
        No more locking up the browser UI on launch
        Applets can persist across browser sessions
        More control over the Applet’s JVM

2   Improved Applet deployment
        JavaScript-based “Deployment Toolkit”
        Mature JNLP-based Applet metadata


3   A smaller JDK
        Micro-kernel gives streamlined download option
Don't forget, RIA's have rich internet
             back-ends! “RIBs”?
Amazon EC2
Elastic Compute Cloud




Google App Engine


Aptana Cloud
Your Application




                   Web Services
The Future?
The Breakdown of Modern Web Development
Safari CSS Animations
Safari CSS Reflections and Masks
HTML 5


                                        <video>
                                        <audio>
                                        <canvas>
                                        <time>
                                        <progress>
                                        <meter>
                                        <menu>
                                        <input type=quot;email | date |
                                        min | max | requiredquot;... >
                                        postMessage
                                        Drag and drop
Ian (Hixie) Hickson
Standards Editor, Google Employee
Gears




Updating the Web...
Future


                 Present
                                            A bl
                                          edg eeding
                                              e ve
                                          of H rsion
                                               TML
                  Past                             5!


HTML 5                        Gears


• Standards                • Implementation
• Long term                • Battle hardened
                           • A place for innovation
• All browsers             • Cross browser
• No plugin                • Plugin
+                              =
             Sophisticated Grid-based
Canvas
                      Layout
Great
                            Widgets



           Easy                                Great
        Deployment                              FX




  Extensive
                                                         Great Mobile
Customization
                                                            Story
   Vectors

                            Ajax

     Easy                                                  Desktop
   Remoting                                              Integration




                  Easy
                                      State-of-the-Art
              Programming
                                          Plug-ins
                 Model
Great
                            Widgets



           Easy                                Great
        Deployment                              FX




  Extensive
                                                         Great Mobile
Customization
                                                            Story
   Vectors

                            Ajax

     Easy                                                  Desktop
   Remoting                                              Integration




                  Easy
                                      State-of-the-Art
              Programming
                                          Plug-ins
                 Model
State Of Ajax   Zend Con 08

Weitere ähnliche Inhalte

Was ist angesagt?

What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsDoris Chen
 
Real World Web Standards
Real World Web StandardsReal World Web Standards
Real World Web Standardsgleddy
 
Intro to Google TV
Intro to Google TVIntro to Google TV
Intro to Google TVGauntFace
 
Android UI Reference
Android UI ReferenceAndroid UI Reference
Android UI ReferenceGauntFace
 
HTML5 Dev Conf 2013 Presentation
HTML5 Dev Conf 2013 PresentationHTML5 Dev Conf 2013 Presentation
HTML5 Dev Conf 2013 PresentationIker Jamardo
 
jQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksjQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksAddy Osmani
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010Nicholas Zakas
 
[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practicejavablend
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...RIA RUI Society
 
HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreRemy Sharp
 
2012.sandiego.wordcamp
2012.sandiego.wordcamp2012.sandiego.wordcamp
2012.sandiego.wordcampBrandon Dove
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyLuciano Resende
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performancekaven yan
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBen Limmer
 
14 Tips For Faster Web Apps
14 Tips For Faster Web Apps14 Tips For Faster Web Apps
14 Tips For Faster Web Appsashok kumar
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 

Was ist angesagt? (19)

What Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 AppsWhat Web Developers Need to Know to Develop Windows 8 Apps
What Web Developers Need to Know to Develop Windows 8 Apps
 
Real World Web Standards
Real World Web StandardsReal World Web Standards
Real World Web Standards
 
Intro to Google TV
Intro to Google TVIntro to Google TV
Intro to Google TV
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
Android UI Reference
Android UI ReferenceAndroid UI Reference
Android UI Reference
 
ICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFishICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFish
 
HTML5 Dev Conf 2013 Presentation
HTML5 Dev Conf 2013 PresentationHTML5 Dev Conf 2013 Presentation
HTML5 Dev Conf 2013 Presentation
 
jQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & TricksjQuery Proven Performance Tips & Tricks
jQuery Proven Performance Tips & Tricks
 
High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010High Performance JavaScript - jQuery Conference SF Bay Area 2010
High Performance JavaScript - jQuery Conference SF Bay Area 2010
 
[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practice
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...
 
HTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymoreHTML5: where flash isn't needed anymore
HTML5: where flash isn't needed anymore
 
2012.sandiego.wordcamp
2012.sandiego.wordcamp2012.sandiego.wordcamp
2012.sandiego.wordcamp
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performance
 
Makezine
MakezineMakezine
Makezine
 
Building Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSocketsBuilding Realtime Apps with Ember.js and WebSockets
Building Realtime Apps with Ember.js and WebSockets
 
14 Tips For Faster Web Apps
14 Tips For Faster Web Apps14 Tips For Faster Web Apps
14 Tips For Faster Web Apps
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 

Ähnlich wie State Of Ajax Zend Con 08

Google Developer Day: State of Ajax
Google Developer Day: State of AjaxGoogle Developer Day: State of Ajax
Google Developer Day: State of Ajaxdion
 
Google I/O State Of Ajax
Google I/O State Of AjaxGoogle I/O State Of Ajax
Google I/O State Of Ajaxdion
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierMicrosoft ArcReady
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnelukdpe
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a NutshellMichele Lanza
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftNETWAYS
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.David Nuescheler
 
Accelerometer and Open GL
Accelerometer and Open GLAccelerometer and Open GL
Accelerometer and Open GLJohn Wilker
 
Accelerometer and OpenGL
Accelerometer and OpenGLAccelerometer and OpenGL
Accelerometer and OpenGLJohn Wilker
 
User Interface Patterns and Nuxeo
User Interface Patterns and NuxeoUser Interface Patterns and Nuxeo
User Interface Patterns and Nuxeoanicewick
 
Securing Rails
Securing RailsSecuring Rails
Securing RailsAlex Payne
 
Building an App with jQuery and JAXER
Building an App with jQuery and JAXERBuilding an App with jQuery and JAXER
Building an App with jQuery and JAXERBrian Moschel
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOSfpatton
 

Ähnlich wie State Of Ajax Zend Con 08 (20)

Google Developer Day: State of Ajax
Google Developer Day: State of AjaxGoogle Developer Day: State of Ajax
Google Developer Day: State of Ajax
 
Google I/O State Of Ajax
Google I/O State Of AjaxGoogle I/O State Of Ajax
Google I/O State Of Ajax
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
PyCon 2011: IronPython Command Line
PyCon 2011:  IronPython Command LinePyCon 2011:  IronPython Command Line
PyCon 2011: IronPython Command Line
 
IITK Workshop
IITK WorkshopIITK Workshop
IITK Workshop
 
Laszlo PyCon 2005
Laszlo PyCon 2005Laszlo PyCon 2005
Laszlo PyCon 2005
 
Smalltalk In a Nutshell
Smalltalk In a NutshellSmalltalk In a Nutshell
Smalltalk In a Nutshell
 
stackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure driftstackconf 2021 | Why you should take care of infrastructure drift
stackconf 2021 | Why you should take care of infrastructure drift
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
Accelerometer and Open GL
Accelerometer and Open GLAccelerometer and Open GL
Accelerometer and Open GL
 
Accelerometer and OpenGL
Accelerometer and OpenGLAccelerometer and OpenGL
Accelerometer and OpenGL
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
User Interface Patterns and Nuxeo
User Interface Patterns and NuxeoUser Interface Patterns and Nuxeo
User Interface Patterns and Nuxeo
 
Securing Rails
Securing RailsSecuring Rails
Securing Rails
 
Building an App with jQuery and JAXER
Building an App with jQuery and JAXERBuilding an App with jQuery and JAXER
Building an App with jQuery and JAXER
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Intro To webOS
Intro To webOSIntro To webOS
Intro To webOS
 

Kürzlich hochgeladen

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

State Of Ajax Zend Con 08

  • 1. State of Ajax Dion Almaer and Ben Galbraith Co-founders, Ajaxian.com
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. “Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for igne r! Asynchronous JavaScript + XML, Des and it represents a fundamental shift in what’s possible on the Web.” Jesse James Garrett Co-founder, Adaptive Path
  • 13.
  • 15.
  • 16. Top Grossing Film of 1957 Top Grossing Film of 2007
  • 17.
  • 18.
  • 19. “Wow” Factor Bertrand Serlet Senior VP, Software Apple, Inc. WWDC 2006
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. First Wave of Ajax: Making JavaScript Better and Web App Development Suck Less
  • 25. XHR
  • 26. The Old Taxonomy Prototype dojo Lightweight Ajax/JavaScript helpers GWT Hate JavaScript? No problem, use Java. Your Soup-to-Nuts Ajax/Javascript Platform jQuery New, DOM-centric JavaScript helper
  • 27. The New Taxonomy Script.aculo.us jQuery UI dijit Plug-in Community Plug-in Community Plug-in Community scripteka.com plugins.jquery.com dojox Prototype jQuery Dojo Core
  • 28. <script type=quot;text/javascriptquot;> function getCityByZip(zip) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { processResults(xhr); } xhr.open(quot;GETquot;, quot;/fun.endpoint?zip=quot; + zip); xhr.send(null); } function processResults(xhr) { if (xhr.readyState == 4) { var parent = document.getElementById(quot;cityParentquot;); parent.innerHTML = xhr.responseText; } } </script>
  • 29. Easy Remoting <script type=quot;text/javascriptquot;> function getCityByZip(zip) { new Ajax.Request(quot;/fun.endpoint?zip=quot; + zip, { method: quot;getquot;, onSuccess: function(xhr) { $(quot;cityquot;).value = xhr.responseText; } }); } </script>
  • 30. CSS and Animations dojo.query(quot;#nav > .focusablequot;).     attr(quot;tabIndexquot;, 0).     style(quot;borderquot;, quot;1px solid transparentquot;).     anim({         quot;borderColorquot;: { start: quot;yellowquot;, end: quot;whitequot; }     });
  • 31. DOM Goodness $(document).bind(quot;readyquot;, function() {   $(quot;divquot;).bind(quot;mousewheelquot;, function(event, delta) {     if (delta < 0) {       $(this).append(quot;upquot;);     } else {       $(this).append(quot;downquot;);    } ); });
  • 32. Dojo Charting Dojo Grid Processing.js
  • 33. Second Wave of Ajax: GUI Toolkits for the Web, or The Browser as Universal Run-time
  • 34.
  • 35.
  • 36. Mobile Me / SproutCore 280 Slides / Objective-J
  • 37.
  • 38. Jef Raskin Noted Usability Expert “ e quality of any [so ware] is ultimately determined by the quality of the interaction between The Humane Interface one human and one system.”
  • 39. “If a system’s one-on-one Jef Raskin interaction with its human user is Noted Usability Expert not pleasant and facile, the resulting de ciency will poison The Humane Interface the performance of the entire system, however ne that system might be in its other aspects.
  • 40.
  • 41.
  • 42.
  • 43. User Interface Visual Design Interaction Design
  • 44. Jakob Nielsen Noted Usability Expert “ e basic advice regarding response times has been about the same for thirty years:
  • 45. “0.1 second is about the limit for Jakob Nielsen Noted Usability Expert having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
  • 46. Jakob Nielsen Noted Usability Expert “1.0 second is about the limit for the user's ow of thought to stay uninterrupted, even though the user will notice the delay.
  • 47. Jakob Nielsen “Normally, no special feedback is Noted Usability Expert necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.”
  • 48.
  • 49. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue tial oten neck P le t Bot User Code Painting, etc. “UI Thread”
  • 50. 1 “UI Thread” User Interface X 2 Background Thread
  • 51. Mouse Moved Mouse Pressed Mouse Released Key Pressed Operating System Key Released Event Queue tial oten neck P le t Bot JavaScript Web Browsing Browser
  • 52. 1 Browser User Interface X 2 Background Thread
  • 53. “Most programmers should run away crying [ om threading]. But they don't... Brendan Eich Inventor of JavaScript CTO, Mozilla “Instead, as with most other sharp tools, the temptation is to show how big one is by... tempting race- condition fate... Occasionally the Brendan’s Blog results are infamous, but too o en, with only virtual ngers and limbs lost, no one learns.
  • 54. “ reads violate abstractions six ways to Sunday. Brendan Eich Inventor of JavaScript CTO, Mozilla “Mainly by creating race conditions, deadlock hazards, and pessimistic locking overhead. Brendan’s Blog “And still they don't scale up to handle the megacore tera op future.”
  • 55. Brendan Eich Inventor of JavaScript CTO, Mozilla “ reads suck.” Brendan’s Blog
  • 56. 1 Browser User Interface 2 Background Thread
  • 57. 1 Browser User Interface Message Passing 2 3 WorkerPool WorkerPool
  • 58. 1 Browser User Interface Message Passing 3.1 ads” fox thre Fire ker X 2 eb wor 3 “W WorkerPool WorkerPool
  • 59. “You just got another email from your wife!” Macintosh HD 32
  • 60. Fluid Gears Mozilla Prism Adobe AIR
  • 61. Fluid GreaseMonkey / GreaseKit 37signals’ Campfire
  • 62.
  • 64.
  • 65. JavaScript Interpreter Native Canvas Implementation Retains rendering commands Issues rendering commands Refreshes screen via native APIs
  • 66. ?
  • 67.
  • 68. ? Google Chrome’s V8 Safari’s SquirrelFish Firefox’s TraceMonkey IE?
  • 69.
  • 70.
  • 71.
  • 72. Browser Java Plug-in WiiApplet JavaScript Dart Game WiiTracker wiiusej JNI wiiuse library
  • 73. The New Java Plug-in Beta Shipping Today with Java 1.6 “Update 10” 1 Java plug-in now out-of-process No more locking up the browser UI on launch Applets can persist across browser sessions More control over the Applet’s JVM 2 Improved Applet deployment JavaScript-based “Deployment Toolkit” Mature JNLP-based Applet metadata 3 A smaller JDK Micro-kernel gives streamlined download option
  • 74.
  • 75. Don't forget, RIA's have rich internet back-ends! “RIBs”?
  • 76. Amazon EC2 Elastic Compute Cloud Google App Engine Aptana Cloud
  • 77. Your Application Web Services
  • 79. The Breakdown of Modern Web Development
  • 82. HTML 5 <video> <audio> <canvas> <time> <progress> <meter> <menu> <input type=quot;email | date | min | max | requiredquot;... > postMessage Drag and drop Ian (Hixie) Hickson Standards Editor, Google Employee
  • 84. Future Present A bl edg eeding e ve of H rsion TML Past 5! HTML 5 Gears • Standards • Implementation • Long term • Battle hardened • A place for innovation • All browsers • Cross browser • No plugin • Plugin
  • 85. + = Sophisticated Grid-based Canvas Layout
  • 86. Great Widgets Easy Great Deployment FX Extensive Great Mobile Customization Story Vectors Ajax Easy Desktop Remoting Integration Easy State-of-the-Art Programming Plug-ins Model
  • 87. Great Widgets Easy Great Deployment FX Extensive Great Mobile Customization Story Vectors Ajax Easy Desktop Remoting Integration Easy State-of-the-Art Programming Plug-ins Model