Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

38
Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013

Transcript of Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Page 1: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet

jQueryjQuery Mobile

Partie 1

Olivier Pons / 2013

Page 2: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

ObjectifObjectif

1. Fondamentaux2. Hotes virtuels3. Règles de réécriture4. Principes Json / Ajax5. Présentation jQuery

Rappel Web / Json / AjaxObjectifObjectif

SommaireSommaire

2 / 38

Page 3: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

fsf.com => 208.73.210.29

gnu.org => 140.186.70.148

...

1. Fondamentaux -1. Fondamentaux - DNS DNS

3 / 38

Page 4: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

=> 208.73.210.29

1. Fondamentaux -1. Fondamentaux - DNS DNS

4 / 38

Page 5: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux –1. Fondamentaux – Client Serveur Client Serveur

ServeurWeb

208.73.210.29Client

Requête

Réponse

5 / 38

Page 6: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux -1. Fondamentaux - Protocole Protocole

HTTP: HyperText Transfer Protocol HTTP: les principales méthodes

GET URL : demander le contenu de la ressource POST URL : envoi de données vers une application

HTTP: le transport Architecture Client-Serveur, mode « Pull » Connections courtes, « Sans état » (stateless)

6 / 38

Page 7: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux –1. Fondamentaux – Client Serveur Client Serveur

ServeurWebClient

Requête

GET / HTTP/1.1Host: localhost:8080User-Agent: Mozilla/5.0 (Windows; U; Windows NT …Accept: text/xml,application/xml, … ,image/png, …Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

7 / 38

Page 8: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux –1. Fondamentaux – Client Serveur Client Serveur

ServeurWebClient

Réponse

HTTP/1.1 200 OKDate: Sun, 14 Aug 2005 15:10:14 GMTServer: Apache/1.3.23 (Win32)Content-Type: text/html

<html><head></head><body><h1>Page</h1></body></html>

8 / 38

Page 9: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux –1. Fondamentaux – HTML HTML

<html> <head> ... <title>Site d'Olivier Pons</title> ... </head><body> <div> <img src="/header.jpg" alt="Texte si erreur" title="Titre image" /> </div> <h1>Bonjour !</h1></div></body></html>

9 / 38

Page 10: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

1. Fondamentaux –1. Fondamentaux – Echanges Echanges

(1) Client demande une page(2) Serveur renvoie la page

(Boucle)

Client demande ressource nécessaire à la pageServeur renvoie la ressource

(Fin boucle)

10 / 38

Page 11: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

2. VirtualHosts2. VirtualHosts>ping olivierpons.fr>ping olivierpons.frPING olivierpons.fr (88.191.136.228) PING olivierpons.fr (88.191.136.228) 56(84) bytes of data.56(84) bytes of data.

>ping keemy.com>ping keemy.comPING keemy.com (88.191.136.228) PING keemy.com (88.191.136.228) 56(84) bytes of data.56(84) bytes of data.

11 / 38

Page 12: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

2. VirtualHosts2. VirtualHosts

Le premier virtualhost est le virtualhost par défaut.<VirtualHost *:80>

</VirtualHost>

ServerName keemy.fr

DocumentRoot /var/www/keemy/ ServerAlias www.keemy.fr

12 / 38

Page 13: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : Web & Optimisation

3. Règles de ré-écriture3. Règles de ré-écriture

Expressions régulières : en généralExpressions régulières : en général+ Une fois ou plus* Zéro ou plus

^ Au début$ A la fin

| ”ou”

chu+t :chu*t : “cht”,“chut”, “chuut”, etc.

^(a|o)live : “alive”, “olive”(passe)*moilesel$

(oli|pons) : oli <=> pons

. N'importe quel car.

a(.*)ur : “arthur”“ah, oui ! Marlène Sasoeur”

13 / 38

13 / 38

“chut”, “chuut”, “chuuut”, etc.

Page 14: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

Expressions régulières : exemple concretExpressions régulières : exemple concret

http://(.*)

http://un_site_test_qui_est.fr/

test (.*) \.(fr|com)/

$1 = un_site_$2 = _qui_est$3 = fr

Page 15: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

Exemple simpleExemple simple

http://oom.papdevis.fr/

http://papdevis.fr/index.php?p=oom

http://ima.papdevis.fr/

http://papdevis.fr/index.php?p=ima

=15 / 38

Page 16: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

Principe : en pratiquePrincipe : en pratique

RewriteRule Pattern Substitution

RewriteCond TestString CondPattern

RewriteRule

16 / 38

Page 17: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

ExempleExemple

RewriteRule (.*) http://us.monsite.com$1 [R=301,L]

RewriteCond %{HTTP_HOST} http://monsite.uk

http://monsite.uk/client/

http://us.monsite.com/client/ 17 / 38

Page 18: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

Exemple avancéExemple avancé

RewriteCond %{HTTP_USER_AGENT} android.+mobile|avantgo|bada\/|blackberry|blazer|... [NC,OR] RewriteCond %{HTTP_USER_AGENT} compal|elaine|fennec|hiptop|iemobile... [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|a-[2-7]...) [NC] RewriteCond %{HTTP_HOST} ^((([a-zA-Z0-9\-]+)\.)+)([a-zA-Z0-9\-]+)\.(fr|com|net|org|eu)$ RewriteRule (.*) http://%1m.%4.%5/$1 [QSA,R,L]

18 / 38

Page 19: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

2. Règles de ré-écriture2. Règles de ré-écriture

Variables Apache internes au serveurVariables Apache internes au serveurDOCUMENT_ROOT SERVER_ADMINSERVER_NAME SERVER_ADDRSERVER_PORT SERVER_PROTOCOLSERVER_SOFTWARE

TIME_(YEAR|MON|DAY|HOUR|MIN|SEC|WDAY)TIMEAPI_VERSION

THE_REQUEST REQUEST_URIREQUEST_FILENAME IS_SUBREQHTTPS

19 / 38

Page 20: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

3. Règles de ré-écriture3. Règles de ré-écriture

Variables Apache : en-têtes HTTPVariables Apache : en-têtes HTTP

HTTP_USER_AGENT HTTP_REFERERHTTP_COOKIE HTTP_FORWARDEDHTTP_HOSTHTTP_PROXY_CONNECTIONHTTP_ACCEPT REMOTE_ADDR

REMOTE_HOST REMOTE_PORTREMOTE_USER REMOTE_IDENTREQUEST_METHOD SCRIPT_FILENAMEPATH_INFO QUERY_STRINGAUTH_TYPE 20 /

38

Page 21: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json Json

JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 de l’IETF.

21 / 38

Page 22: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json Json{ "menu": { "id": "file", "value": "File", "popup": { "menuitem": [ { "value": "New", "onclick": "CreateNewDoc()" }, { "value": "Open", "onclick": "OpenDoc()" }, { "value": "Close", "onclick": "CloseDoc()" } ] } }}

22 / 38

Page 23: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json – Encode - Php Json – Encode - Php

string json_encode ( mixed $value [, int $options = 0 ])

Retourne une chaîne contenant la représentation JSON de la valeur value.

23 / 38

Page 24: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json – Encode - Php Json – Encode - Php

json_encode(array("Pêche", "Pomme", "Poire"));

=> ["Pêche","Pomme","Poire"]

json_encode(array(4 => "Mauvais", 18 => "Bon"));

=> {"4":"Mauvais","18":"Bon"}

json_encode(array("IUT" => true, "Fb" => null));

=> {"IUT":true,"Fb":null}

24 / 38

Page 25: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json – Decode - Php Json – Decode - Php

$string = '{"vive": "Linux", "autre": "chaine"}';

$result = json_decode($string);var_dump($result);

object(stdClass)#1 (2) { ["vive"]=> string(5) "Linux" ["autre"]=> string(6) "chaine"}

echo $result->vive; // "Linux"echo $result->autre; // "chaine" 25 /

38

Page 26: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Json – JavaScript Json – JavaScript

JSON = JavaScript Object Notation=> C'est un sous ensemble de JavaScript=> En JavaScript, on peut écrire directement en JSONvar myJSONObject = {"a": [ {"b": "c", "d": "e", "r": "^http://.*"}, {"g": "h", "i": "j", "r": "^dee.*"}, {"k": "l", "m": "n", "r": "^rx.*"} ]};myJSONObject.a[1].r=> "^dee.*"

26 / 38

Page 27: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax

27 / 38

Page 28: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax

Ajax (acronyme d'Asynchronous JavaScript and XML) permet de construire des applications Web et des sites web dynamiques interactifs sur le poste client en se servant de différentes technologies ajoutées aux navigateurs web entre 1995 et 2005. Il combine JavaScript, les CSS, XML, le DOM et le XMLHttpRequest afin d'améliorer maniabilité et confort d'utilisation des Applications Internet Riches (abr. RIA)1,2...http://fr.wikipedia.org/wiki/Ajax_(informatique) 28 /

38

Page 29: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax

Les échanges de données entre client et serveur peuvent utiliser divers formats, tels que JSON.

Les applications Ajax fonctionnent sur tous les navigateurs Web courants : Mozilla Firefox, Konqueror, Google Chrome, Safari, Opera, Chromium, Internet Explorer, etc.

http://fr.wikipedia.org/wiki/Ajax_(informatique)29 / 38

Page 30: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax<!DOCTYPE html><html lang="fr"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" media="screen" href="style.css"> <script src="jquery-1.x.x.min.js"></script> <script src="script.js"></script> </head> ...

http://fr.wikipedia.org/wiki/Ajax_(informatique)30 / 38

Page 31: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax… <body> <form method="post" action="add.php"> <fieldset> <legend>Choisissez deux nombres entiers</legend> <p><label>a = <input name="a" type="number" required></label></p> <p><label>b = <input name="b" type="number" required></label></p> </fieldset> <fieldset> <legend>R&eacute;sultat</legend> <p id="result"></p> </fieldset> <p><button>Soumettre</button></p> </form> </body></html>

31 / 38

Page 32: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax$(document).ready(OnReady);function OnReady(){ $("form").submit(OnSubmit);}function OnSubmit(data){ $.ajax({ type: $(this).attr("method"), url: $(this).attr("action"), data: $(this).serialize(), success: OnSuccess }); return false;}function OnSuccess(result){ $("#result").html(result);} 32 /

38

Page 33: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax

ServeurWeb

208.73.210.29Client

Requête

Réponse

http://monsiteweb.fr/post.php

33 / 38

Page 34: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

4. Json / Ajax –4. Json / Ajax – Ajax Ajax

<?php

/* Envoi au client le résultat du calcul de a + b */ print(intval($_POST["a"]) + intval($_POST["b"]));

?>

34 / 38

Page 35: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

5. jQuery –5. jQuery – Présentation Présentation<!DOCTYPE html><html lang="fr"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" media="screen" href="style.css"> <script src="jquery-1.x.x.min.js"></script> <script src="script.js"></script> </head> ...

35 / 38

Page 36: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

5. jQuery –5. jQuery – Présentation Présentation

1) AJAX2) DOM - Effets - Manipulation - Parcours3) Gestion des événements

36 / 38

Page 37: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

5. jQuery –5. jQuery – Présentation Présentation

Showcases jQuery

http://usejquery.com/siteshttp://www.exitzeroproject.org/http://like-there-is-no-tomorrow.com/

37 / 38

Page 38: Internet jQuery jQuery Mobile Partie 1 Olivier Pons / 2013.

Internet : jQuery / jQuery Mobile / Part. 1

5. jQuery –5. jQuery – Présentation Présentation

Pour les développeurs :responsive design

http://twitter.github.com/bootstrap/

38 / 38