Retourner à la page d'accueil de TJS

Les Limites de javascript

Cette page est destinée à définir précisément les possibilités et les limites du language JavaScript. De nombreux webmasters pensent que javascript permet toutes les fantaisies et répond à tous les besoins. C'est loin d'être le cas.
Si vous confondez Java et JavaScript, je vous invite à lire cette page de comparaison.
Nous allons commencer par voir ce qu'il est possible de faire avec JavaScript. Nous verrons ensuite comment la sécurité implique des limites au langage. En fin nous aborderons des alternatives avec d'autres langages pour internet.

1 - Ce que permet JavaScript
Le language JavaScript est parfaitement adapté pour des traitements sur le poste du navigateur. Voici quelques exemples de cas où JavaScript est efficace (voire irremplaçable) :
  • Vérification de saisie dans des formulaires (Adresse, email)
  • Calculs simples suite à des saisies de formulaire (Tarifs, calculatrice)
  • Moteur de recherche (base de recherche définie par le webmaster)
  • Gestion des dates et des heures (Date du jour, Date de mise à jour, Calendriers)
  • Gestion des cookies (Sauvegarde d'information : nombre de visites, caddie virtuel)
  • Gestion de la navigation (Menus dynamique, popup)
  • Animations graphiques (Dynamic HTML, MouseOver, bannières rotatives, jeux)
  • ...
La liste n'est pas terminée. L'imagination du développeur peut repousser les limites du JavaScript, sans pour autant réaliser l'impossible. Voyons maintenant les raisons des limites techniques qu'imposent ce langage.

2 - JavaScript et la sécurité
JavaScript a été conçu pour limiter (presque) complètement les risques pour le visiteur. En ce sens, on peut dire que exécuter un javascript sur son navigateur ne comporte aucun risque pour les données et le matériel. JavaScript ne permet pas d'écrire ou de lire un fichier sur le disque dur du visiteur ou sur le serveur. Ainsi, vous ne risquez pas de voir des données confidentielles récupérées à votre insu. De même, il n'est pas possible de lister les logiciels copiés et non enregistrés. Impossible aussi de détruire des fichiers indispensables ou d'introduire un virus sur le poste d'un visiteur.
JavaScript permet quand même d'écrire et de lire le disque dur dans la zone réservée aux cookies. C'est la seule interaction que javascript peut avoir avec votre disque dur.

Certains me diront que JavaScript possède des fonctions pour lire des fichiers texte. En fait, javascript permet d'intégrer des applets Java ou ActiveX qui elles sont capables d'agir sur le disque dur. Il ne s'agit pourtant pas de javascript pur : si vous désactivez Java et ActiveX, rien ne se passera.

JavaScript seul ne peut pas non plus récupérer l'adresse IP d'un visiteur. Il est indispensable également de passer par des appels à Java ou à ActiveX.

J'ai dit que javascript est presque sans risque. Il est possible de coder un javascript qui ouvre des popups jusqu'à épuiser complètement les ressources système. Dans ce cas, la seule solution est de rebooter votre ordinateur. On peut aussi imaginer un javascript qui tourne en tâche de fond d'une page web, occupant ainsi des ressources et réduisant les performances de votre poste.

Les performances de javascript en terme de sécurité pour les visiteurs font que JavaScript est accepté par (presque) tous. Le prix de cette sécurité et de cette quasi universalité se traduit par des limites techniques que nous allons détailler tout de suite.


3 - Les limites de JavaScript
La principale limite de JavaScript est qu'il ne permet pas de lire et d'écrire sur le disque dur du visiteur (en dehors des cookies) et du serveur. Il est donc impossible en javascript de générer par exemple un fichier de connexions sur le serveur, ou un compteur de visites sur une page donnée. De même, JavaScript ne peut pas s'interfacer avec une base de données. Impossible alors de concevoir un forum de discussion, un script de sondage ou de vote, dont les données sont stockées, soit dans un fichier, soit en base sur le serveur. Impossible aussi de lier un catalogue en base sur le serveur à votre boutique en ligne.
JavaScript n'échange pas avec d'autres machines connectées. Impossible donc de créer une page de chat (discussion en direct).

Les limites sont nombreuses et réelles. Heureusement, d'autres technologies existent.


4 - Les alternatives
Il existe une multitude de technologies actuellement qui permettent de combler les lacunes de javascript. On peut les séparer en 2 catégories :
  • Celles dont le code est exécuté sur le poste du visiteur
  • Celles dont le code est exécuté par le serveur qui renvoie une page au format HTML
Dans la première catégorie, on peut citer Flash, Java, et d'autres qui permettent par exemple de créer des univers 3D. En général, ils nécessitent un plugin et ne sont donc pas compatibles avec tous les navigateurs. Ils repoussent les limites de l'animation graphique et offrent en général plus de possibilité de lecture/écriture sur le disque. La sécurité n'est pas assurée : plantages fréquents, accès au disque, ...

Il existe surtout de nombreux langages de scripts qui sont exécutés sur le serveur, permettant ainsi de stocker des informations et de générer des pages dynamiques à partir de bases de données. Tout JavaScript.com utilise de plus en plus la technologie PHP que je recommande à tous.
Les risques pour la sécurité sont nuls, car le visiteur ne reçoit que des pages en HTML, éventuellement enrichies par du JavaScript.
Si vous voulez en savoir plus sur le PHP, lisez le tutorial sur l'introduction au PHP.



J'ai, dans cette page, donné mon avis sur les limites de JavaScript. Je ne prétends pas que JavaScript est LA solution à tous nos besoins. Les languages CGI, ASP ou PHP sont indispensables. Mon but était de re-situer les possibilités de JavaScript (et de mettre en garde les internautes des risques liés aux plugins).

Nouveautés du moment sur le site

Maj tuto AJAX avec XMLHTTPRequest

Le tutorial sur la console Javascript

Le format JSON

Les instructions try ... catch

L'objet XMLHttpRequest

Chercher une référence

Le graph des objets Javascript



Chargement
en cours...

Le guide complet du javascript

Le Guide Complet du JavascriptEn savoir plus sur mon livre aux Editions Micro Application
Le 24/07/2017 08:50:58 sur php7 en 11.97 ms