SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Tutoriel: AJAX JQUERY   Auteur: Marc-Aurèle KOUAIK
Sommaire
    1. Présentation

    2. Mise en place

    3. Implémentation du service WCF

    4. Paramétrage du service WCF

    5. Appel asynchrone des méthodes du service

    6. Conclusion




28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   2
1. Présentation

    AJAX (Asyncronous Javascript And XML) est une méthode qui permet de
    récupérer à partir du navigateur des données serveur de manière asynchrone.
    Cette méthode est basée sur des bibliothèques Javascript fournies par
    Microsoft.

    JQuery est une bibliothèque Javascript qui simplifie la manipulation des
    objets présents dans la page HTML. Elle permet d’accéder facilement à la
    gestion d’événement, aux animations et autres interactions sur ces objets.

    Dans Visual Studio 2010, Microsoft a intégré la bibiliothèque JQuery à la
    création d’application Web.




28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   3
2. Mise en place
    Création d’un nouveau projet Web ASP.NET.



       Par défaut, nous voyons bien que Visual Studio a intégré la bibliothèque JQuery à
       l’application.




       Pour charger les éléments asynchrones de la page, un service estnécessaire.
       Il faut donc créer un service WCF compatible AJAX.




28/11/2011     Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   4
3. Implémentation du service WCF
    Au niveau du service il est nécessaire d’exposer des méthodes qui
    seront par la suiteappelées par JQuery.

    Pour chaque méthode deux attributs sont nécessaires :
      - [OperationContract] : permet d’exposer la méthode
      - [WebGet] ou [WebInvoke] : permet de préciser le type d’opération
     (WebInvoke permet de présiser la méthode HTTP utilisée).

    Il est aussi nécessaire de préciser le format de la réponse avant de retourner
    le résultat de la méthode dans l’attribut WebGet ou WebInvoke :
    ResponseFormat=WebMessageFormat.Xml




28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   5
3. Implémentation du service WCF (suite)
    Le format de la réponse peut aussi être par exemple de type JSON en
     précisant :
    ResponseFormat=WebMessageFormat.Json
    J’ai donc créé une méthode simple retournant un string.




       NB : le paramétrage de l’attribut WebGet peut aussi être effectué dans le bloc
       behaviour lié au service WCF dans le fichier web.config.




28/11/2011     Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   6
4. Paramétrage du service WCF
    Au niveau du paramétrage, lors de la création du service, Visual
    Studio créé automatiquement les paramètres.

    J’ai tout de même ajouté le paramétrage permettant les
    requêtes HTTP GET depuis le navigateur (permettant par
    exemple de voir le WSDL).
         <serviceMetadata httpGetEnabled="true" />

    C’est assez pratique pour voir si le service fonctionne bien.




28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   7
4. Paramétrage du service WCF(suite)
    Le bloc correspondant au paramétrage du service est donc comme
    ceci :
             <system.serviceModel>
               <behaviors>
                <serviceBehaviors>
                 <behavior name="MyServiceTypeBehaviors" >
                   <serviceMetadata httpGetEnabled="true" />
                 </behavior>
                </serviceBehaviors>
                <endpointBehaviors>
                 <behavior name="AJAX_Jquery.Service1AspNetAjaxBehavior">
                   <!-- <enableWebScript /> -->
                   <webHttp defaultOutgoingResponseFormat="Xml" defaultBodyStyle="Bare" />
                 </behavior>
                </endpointBehaviors>
               </behaviors>
               <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
                multipleSiteBindingsEnabled="true" />
               <services>
                <service name="AJAX_Jquery.Service1" behaviorConfiguration="MyServiceTypeBehaviors">
                 <endpoint address="" behaviorConfiguration="AJAX_Jquery.Service1AspNetAjaxBehavior"
                   binding="webHttpBinding" contract="AJAX_Jquery.Service1" />
                </service>
               </services>
              </system.serviceModel>



28/11/2011          Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   8
5. Appel asynchrone des méthodes du service
    Il ne reste donc plus qu’à appeler la méthode du service que nous avons créée
    plus haut.
    Cette méthode s’appelle GetData et ne demande aucun argument.
    La réponse HTTP de cette méthode est :
    <stringxmlns="http://schemas.microsoft.com/2003/10/Serialization/"><s
    an>This is the data that must be displayed asynchronously</span></string>
    Pour commencer, il faut inclure la bibliothèque JQuery pour permettre
    d’appeler les fonctions de celle-ci. Dans l’entête HTML, il faut ajouter la
    balise :
        <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
    Plus loin, j’ai créé un bloc <script> effectuant l’appel à la Méthode du service
    WCF.
    Je conseille en temps normal d’effectuer ceci dans un fichier « .js » à part afin
    de ne pas polluer la page avec du script, mais dans notre cas il ne s’agit que
    d’une démonstration. Pour mieux vous rendre compte du fait que l’appel est bel
    et bien asynchrone, vous pouvez encapsuler la commande dans une fonction et
    faire appel à cette fonction sur l’événement clic d’un bouton (contrôle HTML
    client).


28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   9
5. Appel asynchrone des méthodes du service
                                        (suite)
             <script type="text/javascript">
                  $.ajax({ url: "Service1.svc/GetData",
                      contentType: "text/xml",
                      success: function (data, textStatus, jqXHR) { onAjaxSuccess(data, textStatus, jqXHR) },
                      error: function (jqXHR, textStatus, errorThrown) { onAjaxFail(jqXHR, textStatus, errorThrown) }
                  });

                 function onAjaxSuccess(data, textStatus, jqXHR) {
                   $("#AjaxContent").html(data.text);
                 }
                 function onAjaxFail(jqXHR, textStatus, errorThrown) {
                   alert("The Asynchronous call has failed");
                 }
               </script>
   Dans ce bloc, j’appèle la méthode du service WCF par la méthode $.ajax. En cas de
   succès, je redirige le handler de l’événement « success » vers une fonction
   OnAjaxSuccess. Je fais de même avec le handler de l’événement « error » vers une
   fonction OnAjaxFail.
   Enfin, je créé un <div> dans le body du document HTML, dont l’ID est AjaxContent, et
       qui
   réceptionnera les données récupérées du service WCF en cas de succès.
             <div id="AjaxContent"></div>




28/11/2011            Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   10
6. Conclusion
    Rendu final
    En gardant la page créée par défaut par Visual Studio 2010, et en
    lui intégrant le code permettant d’afficher mon message en
    utilisant la méthode AJAX, voici le rendu final de la page.



    Conclusion
    Microsoft a simplifié le développement AJAX, grâce à l’intégration de la bibliothèque
    JQuery, et généralisé les méthodes de communication par l’utilisation de WCF.

    Au niveau du serveur, Microsoft préconise maintenant l’utilisation des services WCF
    pour développer en AJAX. Les services web XML (d’extension asmx) ne sont plus
    recommandés comme points d’entrée.
    Au niveau de la page, les balises <asp:ServiceReference> ne sont plus nécessaires pour
    exposer les méthodes du service au script client. La bibliothèque JQuery intègre
    totalement l’appel asynchrone AJAX.

28/11/2011   Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com   11

Contenu connexe

Tendances

Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec JavaFrancois ANDRE
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Abdelouahed Abdou
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615JUG Toulouse
 
Web dev open door
Web dev   open doorWeb dev   open door
Web dev open doorLeTesteur
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Eric Bourdet
 
Les 3 modes de concurrence wcf
Les 3 modes de concurrence wcfLes 3 modes de concurrence wcf
Les 3 modes de concurrence wcfNovencia Groupe
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursHoracio Gonzalez
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Claude Coulombe
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWSLilia Sfaxi
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 

Tendances (20)

Sécurisation des wcf
Sécurisation des wcfSécurisation des wcf
Sécurisation des wcf
 
Service WEB de type REST avec Java
Service WEB de type REST avec JavaService WEB de type REST avec Java
Service WEB de type REST avec Java
 
Cours JSP
Cours JSPCours JSP
Cours JSP
 
Marzouk jsp
Marzouk jspMarzouk jsp
Marzouk jsp
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08
 
Services rest & jersey
Services rest & jerseyServices rest & jersey
Services rest & jersey
 
Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)Ajax (Asynchronous JavaScript and XML)
Ajax (Asynchronous JavaScript and XML)
 
REST JUG Toulouse 20100615
REST JUG Toulouse 20100615REST JUG Toulouse 20100615
REST JUG Toulouse 20100615
 
Marzouk-HTTP-SESSION-JEE
Marzouk-HTTP-SESSION-JEEMarzouk-HTTP-SESSION-JEE
Marzouk-HTTP-SESSION-JEE
 
Web dev open door
Web dev   open doorWeb dev   open door
Web dev open door
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
 
Les 3 modes de concurrence wcf
Les 3 modes de concurrence wcfLes 3 modes de concurrence wcf
Les 3 modes de concurrence wcf
 
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - CoursENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - Cours
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 

Similaire à Tutoriel ajax jquery

cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024YounesOuladSayad1
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec aspNovencia Groupe
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesCERTyou Formation
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhindguendouz2000
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursHoracio Gonzalez
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web ServicesLilia Sfaxi
 
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010CERTyou Formation
 
Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0CERTyou Formation
 
Cyajax formation-ajax-pour-les-web-developpeurs
Cyajax formation-ajax-pour-les-web-developpeursCyajax formation-ajax-pour-les-web-developpeurs
Cyajax formation-ajax-pour-les-web-developpeursCERTyou Formation
 

Similaire à Tutoriel ajax jquery (20)

cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Utilisation d'une api web avec asp
Utilisation d'une api web avec aspUtilisation d'une api web avec asp
Utilisation d'une api web avec asp
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Ajax
AjaxAjax
Ajax
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Javav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservicesJavav formation-java-avance-hibernate-webservices
Javav formation-java-avance-hibernate-webservices
 
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhxml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
xml-webservices-intro.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Atelier gwt
Atelier gwtAtelier gwt
Atelier gwt
 
.NET DotNet CF - 3
.NET DotNet CF - 3.NET DotNet CF - 3
.NET DotNet CF - 3
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010
M10557 formation-introduction-au-developpement-web-avec-visual-studio-2010
 
Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0Aspn2 formation-asp-net-et-web-2-0
Aspn2 formation-asp-net-et-web-2-0
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Cyajax formation-ajax-pour-les-web-developpeurs
Cyajax formation-ajax-pour-les-web-developpeursCyajax formation-ajax-pour-les-web-developpeurs
Cyajax formation-ajax-pour-les-web-developpeurs
 

Plus de Novencia Groupe

Datalake de l'idée à la plateforme
Datalake de l'idée à la plateformeDatalake de l'idée à la plateforme
Datalake de l'idée à la plateformeNovencia Groupe
 
Ambient intelligence & bigdata
Ambient intelligence & bigdataAmbient intelligence & bigdata
Ambient intelligence & bigdataNovencia Groupe
 
Workshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueWorkshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueNovencia Groupe
 
Workshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURWorkshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURNovencia Groupe
 
L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2Novencia Groupe
 
L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2Novencia Groupe
 
Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Novencia Groupe
 
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...Novencia Groupe
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la detteNovencia Groupe
 
Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Novencia Groupe
 
Les systèmes de compensation
Les systèmes de compensationLes systèmes de compensation
Les systèmes de compensationNovencia Groupe
 
Présentation des marché de capitaux
Présentation des marché de capitauxPrésentation des marché de capitaux
Présentation des marché de capitauxNovencia Groupe
 
Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans aspNovencia Groupe
 
Introduction à la finance de marché
Introduction à la finance de marchéIntroduction à la finance de marché
Introduction à la finance de marchéNovencia Groupe
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Novencia Groupe
 
Mécanisme de planification de tâches
Mécanisme de planification de tâchesMécanisme de planification de tâches
Mécanisme de planification de tâchesNovencia Groupe
 

Plus de Novencia Groupe (20)

Datalake de l'idée à la plateforme
Datalake de l'idée à la plateformeDatalake de l'idée à la plateforme
Datalake de l'idée à la plateforme
 
Ambient intelligence & bigdata
Ambient intelligence & bigdataAmbient intelligence & bigdata
Ambient intelligence & bigdata
 
Workshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance uniqueWorkshop Fonctionnel - Mecanisme surveillance unique
Workshop Fonctionnel - Mecanisme surveillance unique
 
Workshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOURWorkshop Fonctionnel - TITRISATION : LE RETOUR
Workshop Fonctionnel - TITRISATION : LE RETOUR
 
L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2L’approche Big Data en finance de marché 2/2
L’approche Big Data en finance de marché 2/2
 
L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2L’approche Big Data en finance de marché 1/2
L’approche Big Data en finance de marché 1/2
 
Les Acronymes financiers de 2014
Les Acronymes financiers de 2014Les Acronymes financiers de 2014
Les Acronymes financiers de 2014
 
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
FATCA et DODD-FRANK : Deux lois américaines qui s’imposent aux banques europé...
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la dette
 
Sonar
Sonar Sonar
Sonar
 
Visual studio 2012
Visual studio 2012Visual studio 2012
Visual studio 2012
 
Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012Euro II : Nouvelle donne 2012
Euro II : Nouvelle donne 2012
 
Les systèmes de compensation
Les systèmes de compensationLes systèmes de compensation
Les systèmes de compensation
 
Présentation des marché de capitaux
Présentation des marché de capitauxPrésentation des marché de capitaux
Présentation des marché de capitaux
 
Mobile development
Mobile developmentMobile development
Mobile development
 
Nouveautés disponibles dans asp
Nouveautés disponibles dans aspNouveautés disponibles dans asp
Nouveautés disponibles dans asp
 
La crise de l'euro
La crise de l'euroLa crise de l'euro
La crise de l'euro
 
Introduction à la finance de marché
Introduction à la finance de marchéIntroduction à la finance de marché
Introduction à la finance de marché
 
Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010Déployer une application directement depuis visual studio 2010
Déployer une application directement depuis visual studio 2010
 
Mécanisme de planification de tâches
Mécanisme de planification de tâchesMécanisme de planification de tâches
Mécanisme de planification de tâches
 

Tutoriel ajax jquery

  • 1. Tutoriel: AJAX JQUERY Auteur: Marc-Aurèle KOUAIK
  • 2. Sommaire 1. Présentation 2. Mise en place 3. Implémentation du service WCF 4. Paramétrage du service WCF 5. Appel asynchrone des méthodes du service 6. Conclusion 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 2
  • 3. 1. Présentation AJAX (Asyncronous Javascript And XML) est une méthode qui permet de récupérer à partir du navigateur des données serveur de manière asynchrone. Cette méthode est basée sur des bibliothèques Javascript fournies par Microsoft. JQuery est une bibliothèque Javascript qui simplifie la manipulation des objets présents dans la page HTML. Elle permet d’accéder facilement à la gestion d’événement, aux animations et autres interactions sur ces objets. Dans Visual Studio 2010, Microsoft a intégré la bibiliothèque JQuery à la création d’application Web. 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 3
  • 4. 2. Mise en place Création d’un nouveau projet Web ASP.NET. Par défaut, nous voyons bien que Visual Studio a intégré la bibliothèque JQuery à l’application. Pour charger les éléments asynchrones de la page, un service estnécessaire. Il faut donc créer un service WCF compatible AJAX. 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 4
  • 5. 3. Implémentation du service WCF Au niveau du service il est nécessaire d’exposer des méthodes qui seront par la suiteappelées par JQuery. Pour chaque méthode deux attributs sont nécessaires : - [OperationContract] : permet d’exposer la méthode - [WebGet] ou [WebInvoke] : permet de préciser le type d’opération (WebInvoke permet de présiser la méthode HTTP utilisée). Il est aussi nécessaire de préciser le format de la réponse avant de retourner le résultat de la méthode dans l’attribut WebGet ou WebInvoke : ResponseFormat=WebMessageFormat.Xml 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 5
  • 6. 3. Implémentation du service WCF (suite) Le format de la réponse peut aussi être par exemple de type JSON en précisant : ResponseFormat=WebMessageFormat.Json J’ai donc créé une méthode simple retournant un string. NB : le paramétrage de l’attribut WebGet peut aussi être effectué dans le bloc behaviour lié au service WCF dans le fichier web.config. 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 6
  • 7. 4. Paramétrage du service WCF Au niveau du paramétrage, lors de la création du service, Visual Studio créé automatiquement les paramètres. J’ai tout de même ajouté le paramétrage permettant les requêtes HTTP GET depuis le navigateur (permettant par exemple de voir le WSDL). <serviceMetadata httpGetEnabled="true" /> C’est assez pratique pour voir si le service fonctionne bien. 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 7
  • 8. 4. Paramétrage du service WCF(suite) Le bloc correspondant au paramétrage du service est donc comme ceci : <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name="MyServiceTypeBehaviors" > <serviceMetadata httpGetEnabled="true" /> </behavior> </serviceBehaviors> <endpointBehaviors> <behavior name="AJAX_Jquery.Service1AspNetAjaxBehavior"> <!-- <enableWebScript /> --> <webHttp defaultOutgoingResponseFormat="Xml" defaultBodyStyle="Bare" /> </behavior> </endpointBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> <services> <service name="AJAX_Jquery.Service1" behaviorConfiguration="MyServiceTypeBehaviors"> <endpoint address="" behaviorConfiguration="AJAX_Jquery.Service1AspNetAjaxBehavior" binding="webHttpBinding" contract="AJAX_Jquery.Service1" /> </service> </services> </system.serviceModel> 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 8
  • 9. 5. Appel asynchrone des méthodes du service Il ne reste donc plus qu’à appeler la méthode du service que nous avons créée plus haut. Cette méthode s’appelle GetData et ne demande aucun argument. La réponse HTTP de cette méthode est : <stringxmlns="http://schemas.microsoft.com/2003/10/Serialization/"><s an>This is the data that must be displayed asynchronously</span></string> Pour commencer, il faut inclure la bibliothèque JQuery pour permettre d’appeler les fonctions de celle-ci. Dans l’entête HTML, il faut ajouter la balise : <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script> Plus loin, j’ai créé un bloc <script> effectuant l’appel à la Méthode du service WCF. Je conseille en temps normal d’effectuer ceci dans un fichier « .js » à part afin de ne pas polluer la page avec du script, mais dans notre cas il ne s’agit que d’une démonstration. Pour mieux vous rendre compte du fait que l’appel est bel et bien asynchrone, vous pouvez encapsuler la commande dans une fonction et faire appel à cette fonction sur l’événement clic d’un bouton (contrôle HTML client). 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 9
  • 10. 5. Appel asynchrone des méthodes du service (suite) <script type="text/javascript"> $.ajax({ url: "Service1.svc/GetData", contentType: "text/xml", success: function (data, textStatus, jqXHR) { onAjaxSuccess(data, textStatus, jqXHR) }, error: function (jqXHR, textStatus, errorThrown) { onAjaxFail(jqXHR, textStatus, errorThrown) } }); function onAjaxSuccess(data, textStatus, jqXHR) { $("#AjaxContent").html(data.text); } function onAjaxFail(jqXHR, textStatus, errorThrown) { alert("The Asynchronous call has failed"); } </script> Dans ce bloc, j’appèle la méthode du service WCF par la méthode $.ajax. En cas de succès, je redirige le handler de l’événement « success » vers une fonction OnAjaxSuccess. Je fais de même avec le handler de l’événement « error » vers une fonction OnAjaxFail. Enfin, je créé un <div> dans le body du document HTML, dont l’ID est AjaxContent, et qui réceptionnera les données récupérées du service WCF en cas de succès. <div id="AjaxContent"></div> 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 10
  • 11. 6. Conclusion Rendu final En gardant la page créée par défaut par Visual Studio 2010, et en lui intégrant le code permettant d’afficher mon message en utilisant la méthode AJAX, voici le rendu final de la page. Conclusion Microsoft a simplifié le développement AJAX, grâce à l’intégration de la bibliothèque JQuery, et généralisé les méthodes de communication par l’utilisation de WCF. Au niveau du serveur, Microsoft préconise maintenant l’utilisation des services WCF pour développer en AJAX. Les services web XML (d’extension asmx) ne sont plus recommandés comme points d’entrée. Au niveau de la page, les balises <asp:ServiceReference> ne sont plus nécessaires pour exposer les méthodes du service au script client. La bibliothèque JQuery intègre totalement l’appel asynchrone AJAX. 28/11/2011 Groupe NOVENCIA - 25 Rue de Maubeuge 75009 PARIS - Tél. : 01 44 63 53 13 - Fax : 01 44 63 53 14 - www.novencia.com - contact@novencia.com 11