Rafraichissement conditionné d'une page en.net



Documents pareils
Reporting Services - Administration

.NET - Classe de Log

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Déploiement d'une base SQL Express

Host Integration Server 2000

Créer un rapport pour Reporting Services

La double authentification dans SharePoint 2007

Gestion du cache dans les applications ASP.NET

Microsoft Application Center Test

Sauvegarde des bases SQL Express

SQL Server et Active Directory

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Connaître la version de SharePoint installée

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Paginer les données côté serveur, mettre en cache côté client

TP3-2 CONSTRUISEZ VOTRE PREMIER SERVICE AZURE

La réplication sous SQL Server 2005

Les Utilisateurs dans SharePoint

Sébastien Sougnez 24/12/ / s.sougnez@areaprog.com 2 ans et demi d expérience

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

WebParts. Version 1.0

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Le hub d entreprise est une application de déploiement des applications mais aussi un outil de communication

Déploiement et monitoring

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

Hébergement et configuration de services WCF. Version 1.0

Création d'un site web avec identification NT

Programmation Web. Madalina Croitoru IUT Montpellier

Le stockage local de données en HTML5

DOM - Document Object Model

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

< Atelier 1 /> Démarrer une application web

Documentation CAS à destination des éditeurs

ADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.

Microsoft Technopoche

Architecture Orientée Service, JSON et API REST

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Comment créer son propre monitoring. (Version simple PHP)

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Création d un service web avec NetBeans 5.5 et SJAS 9

Alfstore workflow framework Spécification technique

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Aspects techniques : guide d interfaçage SSO

Construire une application marketing Facebook sur la plateforme Windows Azure

Introduction à JDBC. Accès aux bases de données en Java

Plateforme PAYZEN. Définition de Web-services

TP JAVASCRIPT OMI4 TP5 SRC

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Définition des Webservices Ordre de paiement par . Version 1.0

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Un ordonnanceur stupide

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Installation de serveurs DNS, WINS et DHCP sous Windows Server 2003

K?ellaWeb Saisie des absences, retards et sanctions APLON en mode Web

Architectures web/bases de données

Utiliser Reporting Services pour des NewsLetter

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

SECURIDAY 2013 Cyber War

Création d objet imbriqué sous PowerShell.

Notions fondamentales du langage C# Version 1.0

Programme Compte bancaire (code)

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

Editer un script de configuration automatique du proxy

Services Windows et Domaines d application

ASP.NET 2.0, C#, Spring.Net et NHibernate

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Windows Server 2008 R2

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Projet de programmation (IK3) : TP n 1 Correction

Stockage du fichier dans une table mysql:

Olivier Deheurles Ingénieur conception et développement.net

CHAPITRE 11. Temps réel Remy Sharp

Gestion de stock pour un magasin

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Tessi Documents Services ASPONE. Démo Webservices UpValue.

TP3 1 : WEB APPLICATIONS AVEC ASP.NET

Démonstration de la mise en cache via HTML 5 sur iphone

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Utilitaires méconnus de StrataFrame

Sécurité des applications web. Daniel Boteanu

Académie Microsoft Exchange Server 2010 MODULE 2 : Migration des boites aux lettres de Exchange 2003 à Exchange 2010

IIS 6 - PHP5 - MySQL phpmyadmin 2.6

Programmer en JAVA. par Tama

Documentation technique

Thomas Petillon. les Cahiers du. Programmeur ASP.NET. Groupe Eyrolles, 2003 ISBN :

Création d application d entreprise

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365

RÉALISATION D UN SITE DE RENCONTRE

Module.NET 3 Les Assemblys.NET

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Interagir avec le SharePoint. Version 1.0

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Architectures en couches pour applications web Rappel : Architecture en couches

Rapport de Mini-Projet en ArcGIS Engine

Transcription:

Rafraichissement conditionné d'une page en.net Test avec AJAX pour rafraichissement En utilisant AJAX, voici une possibilité de faire un rafraichissement conditionné. Nous verrons dans cet article une méthode très simple pour effectuer un test qui conditionne le rafraichissement d'une page, ceci pour ne pas surcharger le serveur. Introduction Avec l'augmentation des débits pour les connexions Internet, nous pouvons maintenant créer des pages web de plus en plus riches. Ceci nous entraine vers un poids des pages de plus en plus importants. On remarque aussi pour les développements que nous utilisons tous les users controls, les servers controls ou les webparts. Ceci permet de découper nos développement Web en composants (ou briques) de bases. Une fois toutes ces briques assemblées dans un "portail", nous constatons que pour certains composants nous avons besoin d'une interaction sans attendre que l'utilisateur effectue une action. Il faut donc voir comment ajouter cet automatisme. Présentation Notre cas est simple, nous voulons pouvoir rafraichir notre page uniquement dans le cas où un test sur une base de données est positif. Nous aurons donc une couche métier qui lancera une procédure stockée. Sur cette couche métier, nous aurons une page web extrêmement simple qui renvoi True ou False et enfin un code AJAX qui testera cette page pour effectuer ou non ce refresh. Nous découperons donc cet article en 2 parties : Script coté serveur (C#) Script coté client (AJAX)

Script côté serveur Nous devons créer une procédure stockée (ou l'équivalent) qui fera le test sur la base. Ce test est à adapter suivant votre besoin fonctionnel, mais le principe est de tester si l'utilisateur courant à un nouvel élément ou non. Nous devons par la suite créer la couche de présentation qui exécutera ce test. Pour cela, nous pouvons passer par différentes techniques : Un WebService : ASMX Un Handler : ASHX Une page : ASPX Chacune de ces possibilités a ses avantages, nous pouvons dans notre cas présent supprimer le WebService, à cause du traitement des enveloppes SOAP. Ceci est difficilement utilisable avec les appels AJAX. Il nous reste donc le passage par le Handler ou la page web. Nous avons un très bon article sur l'utilisation du Handler écrit par Aurélien : Ajax.ActiveUsersList (FR) De ce fait, nous allons simplement créer une page ASPX qui renvoi uniquement "True" ou "False", suivant le cas. Notre exemple sera en C#, mais facilement traduisible en VB.NET. Dans notre page ASPX, nous aurons uniquement le référencement vers le fichier de code behind (xxxx.aspx.cs). Il faut enlever tout ce qui est ajouté à la création de celle-ci.

Dans le fichier de code, nous aurons l'appel de la couche métier pour la base de données. using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace ASP-PHP.AjaxProject /// <summary> /// Description résumée de AjaxProject. /// </summary> public class AjaxProjectASPX : System.Web.UI.Page private void Page_Load(object sender, System.EventArgs e) HttpRequest Request = System.Web.HttpContext.Current.Request; HttpResponse Response = System.Web.HttpContext.Current.Response; bool retour = false; string LeLogin = string.empty; try LeLogin = System.Web.HttpContext.Current.User.Identity.Name.ToString(); //Notre appel à la couche métier qui renvoie vrai ou faux retour = CheckNewInDB(LeLogin); catch retour = false; finally LeLogin = null; Response.Write(retour); #region Code généré par le Concepteur Web Form override protected void OnInit(EventArgs e) // // CODEGEN : Cet appel est requis par le Concepteur Web Form ASP.NET. // InitializeComponent(); base.oninit(e); /// <summary> /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas /// le contenu de cette méthode avec l'éditeur de code. /// </summary> private void InitializeComponent() this.load += new System.EventHandler(this.Page_Load); #endregion Nous voyons donc que cette page est vraiment très simple, la seule complication est la couche métier permettant de faire ce test, il faut donc adapter cette partie à votre besoin. Dans mon cas d'origine, il me fallait tester tous les nouveaux éléments affectés à l'utilisateur courant. Nous allons maintenant regarder la couche à ajouter dans le client WEB.

Script côté client Cette partie est celle préférée par Aurélien. En effet, nous allons utiliser le concept de base de l'ajax. En effet, notre but est que ce script JS effectue ce test directement sur la page web que nous venons de créer. Le fait de passer par cet appel Javascript est que cet appel utilise le context courant et donc transmet le login de l'utilisateur courant. <script language="javascript"> var req; var surl=unescape(window.location.pathname); var url='lapagedetest.aspx'; function refresh() window.location.href=surl; function doload() settimeout( "refresh()", 1000 ); function doreloadjs() settimeout( "loadxmldoc(url)", 600000); function processreqchange() if (req.readystate==4) // only if "OK" if (req.status==200) if (req.responsetext=='true') doload(); else doreloadjs(); function loadxmldoc(url) if (window.xmlhttprequest) req = new XMLHttpRequest(); req.onreadystatechange = processreqchange; req.open("get", url, true); req.send(null); else if (window.activexobject) req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) req.onreadystatechange = processreqchange; req.open("get", url, true); req.send(); loadxmldoc(url); </script> Dans cet exemple, nous voyons que si la valeur est True, nous rechargeons la page, sinon on place un timer de 10 minutes (600 000 Millisecondes) pour exécuter ce test à nouveau.

Conclusion Nous avons à partir de cet article faire une approche très simple de ce que la technologie AJAX peut apporter dans un développement de site web. Il n'est pas du tout indispensable d'utiliser celle-ci, pour plusieurs raisons telle que l'obligation que le poste client accepte l'exécution des scripts JS ou encore l'augmentation de la complexité de son code,... Quoi qu'il en soit, cette technologie a le vent en poupe et la mise en place de sites comme Windows Live ou encore de la nouvelle version en développement du site Hotmail nous impose de comprendre les rouages de cette technologie. Si vous souhaitez aller bien plus loin dans cette apprentissage, je vous invite à lire l'article de notre ami Aurelien très complet sur le sujet. Voici quelques liens utiles si cet article vous a intéressé : AJAX + ASP ou PHP (FR) Ajax.ActiveUsersList - Article d'aurelien (FR) Very Dynamic Web Interfaces (US) Tutorial sur les requêtes serveur en JavaScript (FR) Ajax.NET - A free library for the Microsoft.NET Framework (US) IServerXMLHTTPRequest/ServerXMLHTTP Members (US) Atlas Project (US) En vous souhaitant de bons projets de développement. Romelard Fabrice (alias F ) Consultant Technique ILEM