Accueil > > > PAF (PHP / AJAX FRAMEWORK)
PAF (PHP / AJAX FRAMEWORK)
Information sur la source
Description
Depuis déjà quelque semaine si ce n'est pas quelques mois, je travaille sur un framework pour AJAX avec PHP, afin de faciliter le développement de site utilisant ces technologies. Le résultat est très intéressant puisque le framework gère énormément d'élément qui peuvent être problématique à gérer côté client comme le parsage de code XML, la gestion du fait que ce qui est reçu peut être du JSON, du XML ou du texte simple, la gestion des requêtes qui peuvent être automatiquement arrêté après le temps que l'on veut et la gestion des requêtes qui sont mis dans une file d'attente pour éviter de surcharger le serveur. Il y a aussi tout les options qui sont offert dans tout les scripts de se genre comme le mode GET/POST, asynchrome ou non, etc. Le tout est codé orienté objet dans la mesure où Javascript le permet. Toute la documentation, ainsi que les exemples d'utilisation sont disponible dans le zip. C'est un des projets que j'ai le plus documenté jusqu'à date. Vous devriez trouver toute l'information que vous cherchez dans la documentation qui fait 8 pages de long.
Source
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>..:: Démonstration du framework PAF ::..</title>
- <script type="text/javascript" src="../js/PAFClient.js"></script>
- <script type="text/javascript" src="../js/Resultat.js"></script>
- <script type="text/javascript" src="../js/misc.js"></script>
- <script type="text/javascript" src="../js/XMLParser.js"></script>
- <script type="text/javascript">
- var objConnexion = new PAFClient();
-
- // URL vers lequel on fait les requêtes //
- objConnexion.setURL('demo_serveur.php');
-
- // Définit si on veut qu'il réessai la requête si elle échoue //
- objConnexion.setRetryOnFail(false);
-
- // Définit le temps avant lequel une requête soit automatique coupée //
- objConnexion.setTimeoutTime(3000);
-
- // Définit si la requête est asynchrome ou non //
- objConnexion.setAsynchronus(true);
-
- // Définit le mode de tranmission //
- objConnexion.setMethod("GET");
-
- // Test d'une commande normale //
- function test1 () {
- objConnexion.executerCommande('faire',new Array(), function (resultat) {
- alert(resultat.getText());
- });
- }
-
- // Test des plusieurs commandes simultanés //
- function test2() {
- objConnexion.executerCommande('delai',new Array(), function (resultat) {
- alert(resultat.getText());
- });
- objConnexion.executerCommande('delai',new Array(), function (resultat) {
- alert(resultat.getText());
- });
- }
-
- // Test de message entre les modules du serveur //
- function test3() {
- objConnexion.executerCommande('changement',new Array(), function (resultat) {
- alert(resultat.getText());
- });
- }
-
- // Test du parser XML //
- function test4() {
- objConnexion.executerCommande('xml', new Array(), function (resultat) {
- alert(
- "Premier élément : " + new XMLNode(resultat.getXML()).getRootNode().$('x')[0].value + "\n" +
- "Deuxième élément : " + new XMLNode(resultat.getXML()).getRootNode().$('x')[1].getRootNode().$('x')[1].value
- );
- });
- }
-
- // Test du JSON //
- function test5() {
- objConnexion.executerCommande('json', new Array(), function (resultat) {
- alert(
- "Premier élément 'x' : " + resultat.getJSON().x[0] + "\n" +
- "Deuxième élément 'x' : " + resultat.getJSON().x[1]
- );
- });
- }
- </script>
- </head>
- <body>
-
- <form>
- <b>Test 1 :</b><br />
- <p>Test le plus simple</p>
- <input type="button" value="Test 1" onclick="test1()" />
- <br />
- <br />
-
- <b>Test 2 :</b><br />
- <p>Test des requêtes qui timeout, du retryOnFail et du système de mise en queue. Il est conseillé d'avoir Firebug pour voir exactement ce qui est fait.</p>
- <input type="button" value="Test 2" onclick="test2()" />
- <br />
- <br />
-
- <b>Test 3 :</b><br />
- <p>Test côté serveur des message entres les modules.</p>
- <input type="button" value="Test 3" onclick="test3()" />
- <br />
- <br />
-
- <b>Test 4 :</b><br />
- <p>Test du parse XML et côté serveur de la génération de XML.</p>
- <input type="button" value="Test 4" onclick="test4()" />
- <br />
- <br />
-
- <b>Test 5 :</b><br />
- <p>Test du JSON côté client et serveur.</p>
- <input type="button" value="Test 5" onclick="test5()" />
- <br />
- <br />
- </form>
-
- </body>
- </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>..:: Démonstration du framework PAF ::..</title>
<script type="text/javascript" src="../js/PAFClient.js"></script>
<script type="text/javascript" src="../js/Resultat.js"></script>
<script type="text/javascript" src="../js/misc.js"></script>
<script type="text/javascript" src="../js/XMLParser.js"></script>
<script type="text/javascript">
var objConnexion = new PAFClient();
// URL vers lequel on fait les requêtes //
objConnexion.setURL('demo_serveur.php');
// Définit si on veut qu'il réessai la requête si elle échoue //
objConnexion.setRetryOnFail(false);
// Définit le temps avant lequel une requête soit automatique coupée //
objConnexion.setTimeoutTime(3000);
// Définit si la requête est asynchrome ou non //
objConnexion.setAsynchronus(true);
// Définit le mode de tranmission //
objConnexion.setMethod("GET");
// Test d'une commande normale //
function test1 () {
objConnexion.executerCommande('faire',new Array(), function (resultat) {
alert(resultat.getText());
});
}
// Test des plusieurs commandes simultanés //
function test2() {
objConnexion.executerCommande('delai',new Array(), function (resultat) {
alert(resultat.getText());
});
objConnexion.executerCommande('delai',new Array(), function (resultat) {
alert(resultat.getText());
});
}
// Test de message entre les modules du serveur //
function test3() {
objConnexion.executerCommande('changement',new Array(), function (resultat) {
alert(resultat.getText());
});
}
// Test du parser XML //
function test4() {
objConnexion.executerCommande('xml', new Array(), function (resultat) {
alert(
"Premier élément : " + new XMLNode(resultat.getXML()).getRootNode().$('x')[0].value + "\n" +
"Deuxième élément : " + new XMLNode(resultat.getXML()).getRootNode().$('x')[1].getRootNode().$('x')[1].value
);
});
}
// Test du JSON //
function test5() {
objConnexion.executerCommande('json', new Array(), function (resultat) {
alert(
"Premier élément 'x' : " + resultat.getJSON().x[0] + "\n" +
"Deuxième élément 'x' : " + resultat.getJSON().x[1]
);
});
}
</script>
</head>
<body>
<form>
<b>Test 1 :</b><br />
<p>Test le plus simple</p>
<input type="button" value="Test 1" onclick="test1()" />
<br />
<br />
<b>Test 2 :</b><br />
<p>Test des requêtes qui timeout, du retryOnFail et du système de mise en queue. Il est conseillé d'avoir Firebug pour voir exactement ce qui est fait.</p>
<input type="button" value="Test 2" onclick="test2()" />
<br />
<br />
<b>Test 3 :</b><br />
<p>Test côté serveur des message entres les modules.</p>
<input type="button" value="Test 3" onclick="test3()" />
<br />
<br />
<b>Test 4 :</b><br />
<p>Test du parse XML et côté serveur de la génération de XML.</p>
<input type="button" value="Test 4" onclick="test4()" />
<br />
<br />
<b>Test 5 :</b><br />
<p>Test du JSON côté client et serveur.</p>
<input type="button" value="Test 5" onclick="test5()" />
<br />
<br />
</form>
</body>
</html>
Conclusion
Ceci est présentement la version RC1 (Release Candidate 1). Le modèle du core est définitif, mais je suis ouvert à toutes modifications à faire pour rendre le framework meilleur.
Compatibilité : IE5.5+ Firefox 3 (version 2 non testé) Google Chrome Safari Opéra
Le projet est aussi disponible sur PHPCS: http://www.phpcs.com/codes/PAF-PHP-AJAX-FRAMEWORK_ 49492.aspx
À venir, si j'ai le temps je vais faire quelques exemples plus complexe de l'utilisation du framework.
Fichier Zip
Historique
- 15 mars 2009 03:50:02 :
- - Deuxième démo ajouté (exemple de login utilisant AJAX)
- Bogue Fix pour l'escapage côté client des caractères envoyés.
- Ajout côté client d'un script pour faciliter le chargement de données à partir d'un formulaire. (Voir la documentation pour les détails)
- 15 mars 2009 20:45:42 :
- Ajout de la modification du DOM à partir de PHP (Voir la documentation pour les détails).
- 17 mars 2009 02:05:56 :
- Validation de formulaires ajouté avec le module FormControl.class.php (Voir la documentation pour les détails)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
lien javascript [ par ilimo ]
bonjour....peut-on rendre un lien actif et inactif avec javascript ?ex : a et b sont deux liens html...quand je clique sur a, la page liée à a s'af
select case en javascript [ par Juju ]
je cherche une sorte un select case mais en javascript, pouvez vous me donner la syntaxe MerciJuju
javascript dans formulaire acrobat [ par domi ]
"Envoie par mèl du contenu du formulaire"j'ai écrit deux lignes simple en javascript dans un formulaire acrobat, il fonctionne bien avec Acrobat "prog
Lien javascript [ par yoyo ]
Salut tout le monde,g un petit pb,g un lien qui est une image et quand je clique dessus, je lance une fonction javascript.Sur IE, pas de probleme mais
Colle pour les pros du javascript [ par Manu ]
Bonjour,je propose aux passionnés de javascript de relever un défi. J'ai téléchargé les fichiers pour un menu en DHTML/JavaScript (fichiers .css et
Javascript & unload ?????????? [ par Léa ]
Hello Utilisant javascript, la fonction onUnload me permet correctement de capturer l'evenement de fermeture de ma fenetre... sauf que la touche F5 ou
fonction javascript [ par phil ]
Bonjourvoici mon pb: function changeFrame(frame1,frame2){ top.nomdeframe1.location=frame1 top.nomdeframe2.location=frame2 comment doit-on écrire ce sc
Besoin urgent d'une fonction Javascript [ par David ]
Bonjour,Voici le context:J'utilise des JSP dans lesquelles j'insert des tags avec des listes déroulantes en import Java.J'ai un champ text dans lequel
versions javascript [ par arthur ]
je cherche une récapitulatif contenant les fonctionnalités de chaque version de javascript de 1.0 à 1.3 ou 1.4.merci
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|