Création du contenu Rich Média - Tarek ZLITNI Offcial Web Site

Transcription

Création du contenu Rich Média - Tarek ZLITNI Offcial Web Site
Création du contenu Rich Média
HTML5 : les formulaires 2.0
•
•
•
Avec Html 4, les types de champs n'étaient pas nombreux.
•
Plusieurs attributs simples à mettre en place améliorent la
prise en charge des formulaires, tout en se passant de
JavaScript.
HTML5 apporte plus d'une douzaine de nouveaux types.
HTML5 introduit de nombreuses nouveautés pour les
formulaires pour améliorer l'aide à la saisie et les contrôles
disponibles pour l'utilisateur.
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 59
Création du contenu Rich Média
HTML5 : les formulaires 2.0
• <input type=
•
•
•
•
•
•
•
•
•
search
tel
email
url
date
number
range
color
...etc
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 60
Création du contenu Rich Média
HTML5 : les formulaires 2.0
Champs
Syntaxe
Date
<input type="date" name="d" value=“<?php echo $today?>">
Date et temps
<input type="datetime" name="dt" value="<?php echo $now?>">
Time
<time>2013-06-27</time>
Nombre
<input type="number" name="nombre" value="12345">
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 61
Création du contenu Rich Média
HTML5 : les formulaires 2.0
Champs
Syntaxe
Month
<input type="month" name="holidays">
Week
<input type="week" name="int_week">
datetime-local
<input type="datetime-local" name="bdaytime">
Note: type="datetime-local" n’est pas supporté par Firefox et
Internet Explorer.
email
<input type="email" name="email">
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 62
Création du contenu Rich Média
HTML5 : les formulaires 2.0
Champs
Syntaxe
Couleur
<input type="color" name="couleur" value="">
Champ de recherche <input type="search" name="" list="datalist" value="">
Data
<data value="10">Dix</data>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 63
Création du contenu Rich Média
HTML5 : les formulaires 2.0
Champs
Syntaxe
Range
<input type="range" min="-100" max="100" value="0" step="2"
name="power" list="powers">
<datalist id="powers">
<option value="0">
<option value="-30">
<option value="30">
<option value="+50">
</datalist>
Progress
<progress id="prog" max=100>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 64
Création du contenu Rich Média
AJAX
•
AJAX : Asynchronous JavaScript and XML
•
AJAX :une technologie de développent web technique pour la
création des applications web interactives.
•
N’est pas un nouveau langage de programmation, mais une
nouvelle façon d'utiliser les normes existantes.
•
Communication client/serveur en mode asynchrone
•
l'échange de données avec un serveur, et la mise à jour des parties d'une
page Web - sans recharger la page entière.
•
Utilise XHTML pour le contenu, CSS pour la présentation, avec Le
DOM et JavaScript pour afficher du contenu interactif.
•
Plusieurs APIs :
•
JQUERY, PROTOTYPE, DOJO, YUI, ANGULAR JS, EXT JS, …
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 65
Création du contenu Rich Média
AJAX
•
AJAX est une technologie de navigateur Web (coté client)
indépendant de la technologie coté serveur Web.
•
XML est couramment utilisé en tant que format pour recevoir des
données du serveur, bien que tout format, y compris le texte brut,
peut être utilisé.
•
Les applications Web classiques transmettent des informations
vers et depuis le serveur utilisant des requêtes synchrones.
•
è Cela signifie que vous remplissez un formulaire, cliquez sur
Envoyer, et acheminés vers une nouvelle page avec de nouvelles
informations à partir du serveur.
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 66
Création du contenu Rich Média
AJAX
è Avec AJAX, quand vous cliquez sur envoyer, JavaScript
communique avec le serveur, interprète les résultats, et met à
jour l'écran actuel. Dans le sens le plus pur, l'utilisateur ne sais
jamais que tout ce qui a même été transmis au serveur.
•
(+) Un utilisateur peut continuer à utiliser l'application alors
que le programme client demande des informations à partir du
serveur en arrière-plan.
•
(+) l'interaction de l'utilisateur est intuitive et naturelle. Clic
est pas nécessaire, mouvement de la souris, par exemple, est
un événement déclencheur suffisant.
•
Piloté par les données (Data-driven) VS Piloté par les pages
(page-driven).
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 67
Création du contenu Rich Média
AJAX : Contrôle de la vidéo
•
Le contrôle d'un lecteur vidéo HTML5 lire, pause, augmentation
et diminution du volume en utilisant du Javascript est simple.
•
Exemple:
<video id="demo" src="BBCnews.mp4"></video>
<div>
<button onclick="document.getElementById('demo').play()">Play </button>
<button onclick="document.getElementById('demo').pause()">Pause </button>
<button onclick="document.getElementById('demo').volume+=0.1">
Volume +</button>
<button onclick="document.getElementById('demo').volume-=0.1">
Volume - </button>
</div>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 68
Création du contenu Rich Média
AJAX : Exemple de contrôle de la vidéo
•
Arrêter le chargement du média:
l'arrêt de la lecture des médias est aussi facile :appeler la méthode
pause (), le navigateur continue à télécharger le média jusqu'à ce
que l'élément est écrasé par garbage collection.
•
Exemples :
var mediaElement = document.getElementById("myMediaElementID");
mediaElement.pause(); mediaElement.src='';
//ou
mediaElement.removeAttribute("src");
var mediaElement = document.getElementById('mediaElementID');
mediaElement.currentTime = 122; //
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 69
Création du contenu Rich Média
AJAX : L’API JQUERY
Principe de fonctionnement
•
•
•
•
•
•
Définition d'une fonction : jquery() ou $() (raccourci)
Accepte des paramètres (en général, un selecteur)
Retourne un objet JQuery
Est exécutée au cours du chargement de l'arbre DOM de la page
Sinon, il faut utiliser window.onload
Utilisation de sélecteurs CSS et JQuery pour accéder et manipuler les
éléments de l'arbre.
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 70
Création du contenu Rich Média
AJAX : L’API JQUERY
Sélecteurs CSS
•
•
•
Similaires aux éléments d'une feuille de style, ou XPath
Exemples : #menuid, h2, .onglet, *, etc.
Exemple : $ ( « body» )
http://docs.jquery.com/DOM/Traversing/Selectors#CSS_Selectors
•
Sélecteurs Jquery
•
Sélecteurs supplémentaires n'existant pas en CSS ou Xpath (ou
raccourcis)
•
Exemples : :visible, :first, etc
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 71
Création du contenu Rich Média
AJAX : L’API JQUERY
Les méthodes
•
•
•
Chaque méthode renvoie l'objet courant
Acces/modication au contenu d'un objet : html()
Exemple :
$ ( ' body ' ) . html ( " h e l l o wor ld " ) ;
•
•
Forcer l'utilisation de la fontion jquery() (à la place de $() )
$ . n oCo n f l i c t ( ) ou j q u e r y . n oCo n f l i c t ( )
<html> <head>
<script type="text/javascript" src="jquery-1.11.3.js"></script>
</head><body>
He l l o World
<script> $('body').html("bonjour tout le monde" ) ; </script>
</body> </html>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 72
Création du contenu Rich Média
AJAX : L’API JQUERY
Variables
•
•
•
var nomVaraible= ValInitiale;
var body = $ ( ' body ' ) ;
Variables standards :
Exemples :length ou size : Nombre d‘élements contenus dans l'objet
JQuery courant:
$ ( function ( ) {
var bodycont ent = $ ( " d i v " ) ;
$ ( '#id2 ' ). html ( " I l y a " + bodycont ent . l e n g t h + " ) " ) ;
// afficher le nombre des <div>
}) ;
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 73
Création du contenu Rich Média
AJAX : L’API JQUERY
text() vs. html()
•
html() : Remplacement du contenu d'un élément (les balises sont
considerees comme des balises)
•
text() : Remplacement du contenu d'un élément en considérant le tout
comme du texte (les caractères < et > des balises sont remplaces par les
entités XML (&gt; et &lt;)
$ ( function () {
var bodycontent = $ ( " d i v " ) ;
$ ( '#id2' ). html ( " Il ya " + bodycont ent . length+ " div ) " ) ;
}) ;
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 74
Création du contenu Rich Média
AJAX : L’API JQUERY
AJAX
•
Methode : ajax (paramètres dans un tableau)
•
Parametres :
•
•
•
•
•
•
url: + adresse de la page a laquelle est envoyée la requête
type: + type de la requête (GET ou POST)
async: (true|false) connexion asynchrone ou non
data : + Tableau de clés/valeur (paramètres de la requête)
success: + fonction (anonyme) exécutée en cas de succes
complete: + fonction (anonyme) exécutée a la finn de l'envoi de la reponse
par le serveur (en cas de succes ou d'erreur)
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 75
Création du contenu Rich Média
AJAX : L’API JQUERY
AJAX : Exemple (fichier HTML)
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.11.3.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var val=$('#champs').val();
$.ajax({url: "test.php",
type: "POST",
data:{valeur:val},
success: function(result){
$("#div1").html(result);
}});
});
©Tarek ZLITNI ([email protected])
});
</script>
</head>
<body>
<input type="text" value="val initiale"
id="champs">
<div id="div1"></div>
<button>Afficher en
MAJUSCULE</button>
</body>
</html>
Gestion Des Rich Média 76
Création du contenu Rich Média
AJAX : L’API JQUERY
AJAX : Exemple (fichier test.php)
<?php
$donnee =$_POST['valeur'];
$maj =strtoupper($donnee);
echo $maj;
?>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 77
Gestion du contenu Rich Média
Exploration des ressources
• Parcours d’un dossier et manipulation de ses fichiers :
1. Parcourir la liste des fichiers d’un dossier donné :appel de la
fonction ajax, en donnant l’url du répertoire.
2.
3.
•
Récupération des noms de tous les noms des fichiers
La suite du traitement demandé
Exemple :
•
Parcourir un dossier d’images de type « png » et les afficher
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 78
Gestion du contenu Rich Média
Exploration des ressources
<script src="jquery-1.11.3.js"> </script>
<script>
var dir = "./";
var fileextension = ".png";
$.ajax({
url: dir,
success: function (data) {
//Lister tous les images et vérifier l’extension
$(data).find("a:contains(" + fileextension + ")").each(function () {
var filename = this.href;
$("body").append($("<img src="+ filename + "><br>"));
});
}
});
</script>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 79
Gestion du contenu Rich Média
Ecriture des annotations (XML)
• Ecriture dans un fichier XML :
• L’écriture des fichiers XML qui repose sur l’objet XMLDOM.
1. La création d’une chaine englobant le contenu XML
2. La sérialisation de cette chaine
3. L’Ecriture de contenu XML final
1.
2.
Affichage dans le navigateur
Téléchargement d’un ficher XML
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 80
Gestion du contenu Rich Média
Ecriture des annotations (XML)
•
Exemple :
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.11.3.js"></script>
<script >
function parseXML(txt){
var xmlDoc
if (window.DOMParser){
xmlDoc=(new
DOMParser()).parseFromString(txt,"application/xml");
}else{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
}
return xmlDoc
}
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 81
Gestion du contenu Rich Média
Ecriture des annotations (XML)
•
Exemple :
// Ecriture de contenu XML
function getCountries() {
return parseXML("<data><country
name='USA'></country></data>")
}
//Sérialisation
function toStringXML(xmlObject){
if(window.XMLSerializer)
return (new
XMLSerializer()).serializeToString(xmlObject)
else
return xmlObject.xml
}
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 82
Gestion du contenu Rich Média
Ecriture des annotations (XML)
•
Exemple :
// Ecriture de contenu XML Final : affichage dans le navigateur
function writerScreen(X){
window.open('data:text/xml,'
+ encodeURIComponent('<?xml version="1.0" encoding="UTF-8"?>'
+toStringXML(X)
))
}
// Ecriture de contenu XML Final : télécharger le fichier
function writer(X){
var dataUrl='data:application/download,' + encodeURIComponent(
'<?xml version="1.0" encoding="UTF-8"?>’ +toStringXML(X)
)
location.href=dataUrl
}
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 83
Gestion du contenu Rich Média
Ecriture des annotations (XML)
•
Exemple :
function generateXML(){
var data=getCountries()
writer(data);//téléchargement
//writerScreen(data);//affichage dans le navigateur
}
$(function(){
$('button').click(generateXML)
})
</script>
<title>writer</title>
</head>
<body>
<button>Générer un ficher XML</button>
</body>
</html>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 84
Gestion du contenu Rich Média
Ecriture des annotations (XML)
•
Exercice:
•
Ecrire script un javascript permettant de récupérer les
principales propriétés d’une vidéo et les écrire sous forme
XML. Le code de génération du code XML est invoqué suite
au chargement des métadonnées de la ressource vidéo.
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 85
Gestion du contenu Rich Média
Chargement des annotations : (XML)
• Lecture d’un fichier XML :
• Quatre étapes pour récupérer le contenu XML :
1. Charger le fichier XML (get)
2. Spécifier le nom du tag a sélectionner (une structure itérative )
3. Accéder au contenu texte (text() )
4. Accéder aux attributs ($nomvar.attr(« nomattribut"))
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 86
Gestion du contenu Rich Média
Chargement des annotations : (XML)
•
•
Lecture d’un fichier XML:
Exemple :
Lire le contenu d’un fichier XML décrivant un ensemble de livres et
les affichant sous frome de liste
•
Le document XML :
<?xml version="1.0"
encoding="UTF-8"?>
<livres>
<livre type="scientifique" >
<titre>Programmer en
Java</titre>
<annee>2013</annee>
<copyright>Delannoy</copyright>
</livre>
<livre type="roman" >
<titre>Le zahir</titre>
<annee>2010</annee>
<copyright>Choello</copyright>
</livre>
</livres>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 87
Gestion du contenu Rich Média
Chargement des annotations : (XML)
•
Lecture d’un fichier XML:
<!DOCTYPE html>
<html>
<head>
<script src="jquery-1.11.3.js"></script>
<script >
$(document).ready(function()
{
$.get('biblio.xml', function(d){
$('body').append('<h1> Ensemble de livres </h1>');
$('body').append('<div />');
$(d).find('livre').each(function(){
var $book = $(this);
var type = $book.attr("type");
var titre = $book.find('titre').text();
var annee = $book.find('annee').text();
var cp = $book.find('copyright').text();
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 88
Gestion du contenu Rich Média
Chargement des annotations : (XML)
•
Lecture d’un fichier XML:
var html = '<h4>' + titre + '</h4> ';
html += '<ul><li>type :' + type + '</li>';
html += '<li>année de sortie : ' + annee + '</li>' ;
html += '<li>(c): ' + cp + '</li>' ;
html += '</ul><hr>';
$('div').append($(html));
});
});
});
</script>
<body>
</body>
</html>
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 89
Gestion du contenu Rich Média
Chargement des annotations : (XML)
•
•
Lecture d’un fichier XML:
Exemple :
©Tarek ZLITNI ([email protected])
Gestion Des Rich Média 90