IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Normalisation HTML5 2D-Context


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut Normalisation HTML5 2D-Context
    Bonjour.

    nous sommes dans cette section du forum directement concernés par plusieurs normes.
    la première qui normalise le langage est Ecmascript de ECMA
    la seconde qui normalise quels objets un navigateur internet met à disposition du langage est HTML du W3C.

    Le W3C vient de faire un pas en avant pour HTML la norme est finalisée. en clair l'API est arrêtée et une release candidate vient d'être publiée, cela signifie que très peut de chose sont succeptible de changer d'ici la normalisation complète. seuls des éléments mineurs pourraient encore évoluer.
    http://www.w3.org/TR/2012/CR-html5-20121217/

    Mais nous avons droit à une autre norme. En effet certains éléments avaient été ajouté par divers constructeurs à HTML. mais le W3C a préféré ne pas les intégrer directement. La raison est simple il est possible de les utiliser hors de HTML.
    le W3C a donc normalisé de façon indépendante de HTML le canvas et vient là aussi de publier une candidate finalisée.
    http://www.w3.org/TR/2012/CR-2dcontext-20121217/

    Le point fondamental de ces normes qui nous concernent directement est que HTML5 n'est pas une norme sur un langage de balisage comme l'était HTML4.
    HTML5 ne normalise pas le langage de tag pour décrire une page. Mais il normalise l'implémentation DOM que le navigateur doit faire. Le balisage n'est qu'une forme sérialisée du DOM.
    Ces deux normes s'appuient pour cela sur une troisième que nous allons devoir apprivoiser si ce n'est déjà le cas.
    http://dev.w3.org/2006/webapi/WebIDL/
    comme vous pouvez le voir elle n'est pas toute jeune.
    l'ensemble HTML5 est décrit sous forme web IDL.

    A+JYT

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    HTML5 ne normalise pas le langage de tag pour décrire une page. Mais il normalise l'implémentation DOM que le navigateur doit faire. Le balisage n'est qu'une forme sérialisée du DOM.
    Très intéressant tout ça. Si le balisage n'est considéré à présent que comme une forme sérialisée du DOM, la question qui me brûle les lèvres c'est : une parmi d'autres ? Le M de HTML pour markup sera-t-il toujours approprié à l'avenir ?

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Re.

    Je reviens sur un point qui me parait fondamental (même s'il ne bouleversera pas ne habitudes immédiatement)

    Dans les version antérieures HTML à été normaliser à partir du langage de balise. de cette norme sur le balisage on a ajouté une représentation le DOM puis on a ajouté des spécification sur l'API que le navigateur devait implémenter.

    Avec HTML on prend les choses dans le sens opposé.
    Citation Envoyé par w3c
    Implementations must support DOM Core and the events defined in DOM Events, because this specification is defined in terms of the DOM, and some of the features are defined as extensions to the DOM Core interfaces.
    ce point est très important. ce qui fait fois c'est le DOM. doc tout ce qui peut produit un DOM respectant cette spécification est conforme à la norme HTML5 et ce même s'il n'y a pas une seule linge de code source html.

    on peut légitimement se poser la question du code source HTML. la réponse tient en 4 lignes
    Citation Envoyé par w3c
    The following features are defined in the DOM Parsing and Serialization specification:
    innerHTML
    outerHTML
    insertAdjacentHTML
    ce que nous dit donc la norme c'es que l'écriture d'un code source pour HTML5 ne relève pas de la norme HTML5 mais de la norme sur la sérialisation et le parsing du DOM. on peut noter que cette norme n'est qu'à l'état de DRAFT.

    en l'état nous avons donc un DOM qui est arrêté et dont l'API EcmaScript est elle aussi arrêtée. et de l'autre une écriture HTML qui est en DRAFT.

    Si vous utilisé l'API DOM dans vos scripts l'avancement des travaux vous garanti que si vous resté conforme à la norme HTML5 vos scripts sont pérennes.
    par contre si vous utiliser du code source HTML ie innerHTML, outerHTML, et insertAdjacentHTML le contenu de ces éléments n'étant pas arrêté est susceptible d'évoluer. et donc vos script ne sont pas pérennes.

    Il convient de relativiser les évolutions sur la syntaxe HTML5 on peu de chance d'évoluer fondamentalement.

    Un point qui me parait intéressant est l'apparition de toJSONdans les spécifications de Web IDL
    Je n'ai pas encore exploré la chose mais il semble que la norme Web IDL prévoit que les objets sérialisables doivent implémenter cette méthode. et HTML5 se base sur Web IDL. il sera intéressant de vérifier que les élément du DOM soit sérialisable en JSON
    car si tel est le cas les échange de fragments pourront se faire par ce biais.

    A+JYT

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    C'est bien connu, le monde est simple et notre environnement de travail est simpliste.

    Les projets et les normes du W3C sur le HTML5 me laissent indifférent depuis le coup du XHTML2 je t'aime moi non plus.

    Depuis ce jour-là, je me suis promis de ne plus faire que du HTML et de suivre une seule spécification : HTML: The Living Standard (A technical specification for Web developers).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Je reviens sur toJSONau premier abord cela m'est apparut evident.

    Le DOM est défini en terme Web IDL et Web IDL laisse apparaitre les mesthodes et j'ai donc suputé que les éléments du DOM implémentaient ces deux méthodes.

    Mais il n'en est rien seul les objet JS du navigateur implémente cette méthode.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var date = new Date();
    console.log(date.toJSON());
    c'est dommage car avoir une forme standard JSON de fragment HTML aurrait permis de charger des fragment via XHR dans ce format sans trop d'efforts.

    la norme DOM HTML5 Serialisation/Parsing propose donc deux sérialisation
    HTML et XML les deux étant quasi similaires. la deuxième est en fait une écriture XHTML du DOM5

    A+JYT

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    c'est dommage car avoir une forme standard JSON de fragment HTML aurrait permis de charger des fragment via XHR
    D'un autre côté tous les frameworks front à la mode ont leur solution de templating en Javascript (angular, ember, backbone...). Perso je trouve old-school de charger directement du DOM (même sous une autre forme que HTML) plutôt que de la data pure et dure. Sauvegarder côté client les vues en templates précompilés, c'est une sacrée optimisation. C'est d'autant plus important pour le mobile (sur un de mes projets handlebars et des web-services envoyant du JSON ont pratiquement divisé par deux le temps de chargement de nos pages sur smartphone)

Discussions similaires

  1. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  2. [] plusieurs instances de form avec leur contexte ?
    Par Seb-31 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/04/2003, 13h56
  3. Context menu Windows - icone pour un item
    Par Cameleon45 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 07/03/2003, 13h48
  4. Context Menu - ( Code de P. Castelain )
    Par Cameleon45 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 06/03/2003, 22h33
  5. Context sous Tomcat
    Par EL MANSOURI dans le forum JBuilder
    Réponses: 5
    Dernier message: 28/01/2003, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo