U.S. visitors: Help Mozilla protect Net Neutrality by signing our petition to Congress (http://mzl.la/nnpetition) on Wednesday, September 10th! See our blog post to learn more: https://blog.mozilla.org/netpolicy/2014/09/04/a-day-of-action-to-protect-net-neutrality/

mozilla
Vos résultats de recherche

    Survol des technologies dans JavaScript

    Introduction

    Alors que le HTML est utilisé afin de garder les données et le format d'une page web et que le CSS encode le style de page, déterminant comment le contenu formaté de la page doit être affiché graphiquement, le JavaScript est utilisé pour améliorer l'interactivité d'une page web ou pour créer des applications web riches en contenu.

    Cependant, le terme "JavaScript" tel que compris dans le contexte d'un navigateur web contient plusieurs éléments très différents. Ceux-ci sont, entre autres, le langage-noyau (ECMAScript) et le DOM (Document Object Model, ou Modèle d'Objet du Document).

    JavaScript, le langage-noyau (ECMAScript)

    Le langage-noyau du JavaScript fut standarisé par le comité ECMA TC39 en tant que langage nommé ECMAScript. Il est spécifié depuis sa dernière version par le nom d'ECMAScript 5.1.

    Quels sont les caractéristiques de l'ECMAScript?

    Entre autres choses, ECMAScript définit :

    • La syntaxe du langage (règles d'interprétation (parsing), mots-clés, contrôle de flux, initialisation littérale d'objets...)
    • Le mécanisme de traitement d'erreurs (throw, try/catch, capacité qu'a l'utilisateur de créer des types d'erreurs personnalisés)
    • Les types de variables (boolean, number, string, function, object...)
    • L'objet global. Dans l'environnement d'un navigateur, cet objet global est l'objet fenêtre. Plusieurs fonctions y sont attachées (parseInt, parseFloat, decodeURI, encodeURI...)
    • Un mécanisme d'héritage basé sur le concept de prototype.
    • Les objets et fonctions pré-construits (JSON, Math, méthodes de Array.prototype, méthodes d'introspection d'Object...)
    • Le mode strict.

    Support sur les navigateurs

    Depuis Avril 2013, les versions courantes des principaux navigateurs web  supportent ECMAScript 5.1, mais certaines versions antérieures utilisent encore ECMAScript 3 et seulement queques fonctionnalités de ECMAScript 5. Certaines resources documentent le support d'ECMAScript 5 sur les navigateurs web.

    Futur

    La 4e version de l'ECMA-262 (ECMAScript 4 ou ES4) aurait été la première mise à jour majeure d'ECMAScript depuis la publication de sa 3e édition en 1999. Depuis Août 2008, la proposition d'une 4e édition d'ECMAScript s'est transformée en un projet au nom de code ECMAScript Harmony qui définit, entre autres, des éléments tels que les Proxys ou le mot-clé const. Son avancement peut être suivi ici.

    Internationalisation de l'API

    La ECMAScript Internationalization API Specification est un ajout à la spécification du langage ECMAScript, aussi standardisé par ECMA TC39. l'API d'internationalisation a apporté la collation (comparaison entre chaînes de caractères), formattage de valeurs de nombre, date et heure pour les applications JavaScript, et permet aux applications de choisir la langue et de créer des fonctionnalités sur mesure par rapport aux besoins requis. Ce standard a été aprouvé en Décembre 2012; son status d'implémentations dans les navigateurs est traité dans la documentation de l'objet Intl.

    Le DOM (Document Object Model)

    WebIDL

    Les spécifications WebIDL apportent le lien entre les technologies DOM et ECMAScript.

    Le noyau du DOM

    Le Modèle d'Objet du Document (DOM) est une convention multi-plateforme et indépendante du langage pour représenter et interagir avec les objets dans les documents HTML, XHTML et XML. Les objets dans l'arbre DOM peuvent être accédés et manipulés en utilisant des méthodes sur les objets. Le Modèle d'Objet du Noyau du Document fut standardisé par le W3C. Il définit les interfaces indécis de langage qui font abstraction des documents HTML et XML en tant qu'objets et en tant que mécanismes afin de manipuler cette abstraction. Parmi les éléments définis par le DOM, on peut trouver:

    • La structure du document, un modèle d'arbre et l'architecture d'évènements DOM dans le noyau DOM: Node, Element, DocumentFragment, Document, DOMImplementation, Event, EventTarget…
    • Une définition moins rigoureuse de l'architecture d'évènements DOM, ainsi que des évènements spécifiques dans les évènements DOM.
    • D'autres éléments tels que le DOM Traversal et le DOM Range.

    HTML DOM

    HTML, le langage de balisage du Web, est spécifié en termes de DOM. Comme couche au-dessus des concepts abstraits définis dans DOM Core, HTML définit également la signification des éléments. Le DOM HTML inclut des choses telles que la propriété className sur des éléments HTML, or des APIs telles que document.body.

    La spécification HTML définit aussi les restrictions sur les documents; par exemple, elle requiert que tous les enfants d'un élément ul (une liste non-ordonnée) soient des élémentsli, puisqu'ils représentent les items d'une liste. En général, cela interdit aussi l'utilisation d'éléments et d'attributs qui ne sont pas définis dans un certain standard.

    Vous cherchez l'objet Document, l'objet Window, et tous les autres éléments du DOM? Lisez la Documentation Gecko DOM.

    D'autres APIs à mentionner

    • Les fonctions setTimeout et setInterval ont d'abord été spécifiées dans l'interface Window dans le standard HTML.
    • XMLHttpRequest.  Une API permettant d'envoyer des requêtes HTML asynchronisées.
    • CSS Object Model. Le CSSOM est utilisé pour abstraire les règles du CSS en objets.
    • WebWorkers. Une API qui permet d'effectuer des calculs parallèles.
    • WebSockets. Une API qui permet d'effectuer des communications bi-directionnelles de bas-niveau.
    • Canvas 2D Context. Une API de dessin pour l'élément canvas.

    Support entre les Navigateurs

    Tous les développeurs webs ont compris, par expérience, que le DOM est mal-organisé. L'uniformité du support des navigateurs web varie beaucoup pour chaque caractéristique. La raison principale de cette situation est due au fait que plusieurs fonctionnalités importantes du DOM ont eu des spécifications très peu claires, lorsqu'elles en avaient. Aussi, différents navigateurs web ont ajouté des fonctionnalités incompatibles pour des cas d'utilisation se recouvrant (comme dans le modèle d'évènements d'Internet Explorer). La tendance courante (en Juin 2011) est que le W3C et particulièrement le WHATWG sont en train de définir en détail d'anciennes fonctionalités afin d'améliorer l'interopérabilité. Suivant cette tendance, les navigateurs améliorent leur implémentation basée sur ces spécifications.

    Une technique courante, mais peut-être pas la plus fiable, dans le développement de la compatibilité multi-navigateurs est d'utiliser une bibliothèque Javascript. Ces bibliothèques créent une couche d'abstraction au-dessus des fonctions du DOM et font en sorte que leurs APIs puissent fonctionner correctement dans différents navigateurs. Quelques unes des bibliothèques les plus utilisées sont jQuery, prototype et YUI.

    Étiquettes et contributeurs liés au document

    Étiquettes :
    Contributeurs ayant participé à cette page : goofy_bz, PanPan, delislejm, duthen, teoli, DocMcBrown
    Dernière mise à jour par : teoli,