Compatibilité navigateur des nouvelles technologies du Web
Pour vérifier que les nouvelles possibilités offertes aux applications Web fonctionnent avec un navigateur, une page de tests.
Parce que le meilleur moyen de vérifier qu'une fonctionnalité est présente, c'est de la mettre en oeuvre. Vous pouvez donc afficher cette page avec les navigateurs que vous ciblez et vérifier qu'ils pourront faire fonctionner votre application...
SQL Storage
Pouvez vous créer une base de donnée locale chez le client? La réponse...
Support:
Actuellement c'est sur Chrome seulement...
Code:
if (window.openDatabase) {
thedb = openDatabase("DBTEST", "1.0", "Base de données HTML5", 10000); }
WebGL
Après avoir vu vu les démonstrations de Tree.js, on ne peut douter de l'intérêt d'utiliser WebGL sur son site, dans son application ou au centre d'une application. Le 3D n'est pas seulement faite pour les jeux. Les utilisations sont innombrables: graphes en 3D, interfaces, présentations d'objets ou de produits en trois dimensions...
Maintenant, reste à savoir sur quels navigateurs fonctionne WebGL... Vérification:
Démo: La barre ci-dessous doit être verte.
Support:
Tous les navigateurs supportent WebGL sur le bureau. Rester à vérifier sur les mobiles.
Code:
var canvas = document.getElementById("canvas3D"); var wgl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
FileReader
Une API pour charger des fichiers sur le poste du client et traiter ou afficher leur contenu. Ce peut être des images, des tables, des textes.
Support:
Reconnu par tous les navigateurs de bureau.
Code:
var test = window.File && window.FileReader && window.FileList && window.Blob;
FileWriter
Après avoir traité un document il convient de le sauvegarder... Malheureusement cela est supporté expérimentalement seulement.
Support:
Reconnu par Chrome seulement (actuellement)...
Code:
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
CSS Gradient
Avec CSS 3, on peut réaliser des transitions, des animations et des effets de dégradés sur les surfaces ou sur un logo... Pour réaliser une application moderne, des panels avec des dégradés de couleurs sont indispensables, ce pourquoi la propriété gradient est si importante.
Les autres fonctions de CSS 3 sont implémentées de façon inégale selon les navigateurs.
Support: Une barre verte en dégradé doit s'afficher ci-dessous.
Reconnu par tous les navigateurs de bureau.
Code:
<style>
.cssgrad {
background: -webkit-linear-gradient(#0c0, #060);
background: linear-gradient(#0c0, #060);
}
</style>
Web Worker
Le multi-tâche dans le navigateur sans même faire appel au serveur... Avec Worker, on lance des processus qui s'exécutent en silence et envoient des résultats quand on le demande. L'application peut interagir avec un programme par messages qui lancent des requêtes et mettent à jour le contenu de l'interface quand vient la réponse.
Support:
Reconnu par tous les navigateurs de bureau.
Code:
var w1 = new Worker("myscript.js");
Shared Worker
Une version de Worker qui s'utilise dans plusieurs fenêtres ou iframes. Cela peut aussi être utilisé par d'autres workers.
Support:
Non reconnu par Edge.
Code:
var sw = new SharedWorker("myscript.js");
WebSocket
Tout ce ce que l'on fait avec Web Worker sur le poste client, on peut le faire avec le serveur grâce à WebSocket. On communique en mode asynchrone et le serveur envoie des données quand elle sont disponible. Un avantage de plus ici est que le serveur peut communiquer avec plusieurs clients.
Support:
Reconnu par tous les navigateurs de bureau.
Code:
var ws = new WebSocket("url", "protocol");
WebRTC
Ce protocole est l'étape suivante dans la communication avec le serveur: on passe des échanges bi-directionnels aux échanges en temps réels. Une fois la connexion ouverte, les données passent du serveur au client en flux ininterrompu, ou mieux encore d'un navigateur à un autre navigateur sans passer par un serveur.
Support:
Reconnu par Chrome et Firefox.
Code:
var audio = new AudioContext();
IndexedDB
Pour passer en mode offline, les données prises dans une base distante MySQL ou autre sont transférée localement dans une base IndexedDB.
Support:
Reconnu par tous les navigateurs (bureau ou mobile) sauf Safari. Il faut un frontend comme Lawnchair ou localForage (ce n'est pas une faute d'orthographe) pour obtenir la compatibilité avec tous les navigateurs.
Code:
var request = window.indexedDB.open("MaBase", 2);
postMessage
Permet d'échanger des données entre iframes ou entre la page et les iframes qu'elle contient.
Support:
Implémenté par tous les navigateurs.
Code envoi:
window.postMessage("message", "http://www.example.com");
Code réception:
window.addEventListener("message", callback, false);
Voir aussi...
- Tous les objets de formulaires dans HTML 5 testés. Vérification de la compatibilité dans un navigateur.
- Compatibilité des nouvelles fonctions JavaScript. Une autre page de test comme celle-ci, cette fois pour Harmony et autres versions de JS.
- Que peut-on faire avec SVG? Le support de SVG est quasi-universel (sauf sur mobiles), ce pourquoi je n'ai pas inclu de test, cet article donne des idées sur les utilisations des nouvelles technologies.
Prévu pour l'avenir
Fonctionnalités futures des navigateurs, ce qui est prévu d'implémenter ou pas. Liens externes.