On peut lancer des scripts en différé, donc quand on en a besoin.
JavaScript asynchrone, tel qu'il est utilisé par Analytics de Google, permet d'exécuter des scripts de façon différée sans ralentir le chargement de la page. Le script s'exécute quand il est disponible et il peut provenir d'un autre site, en l'occurence du service de statistiques en ligne de Google quand à Analytics. Cette technologie est-elle une alternative à Ajax ou fetch?
Après quelques tests (voir dernier lien en bas de page), on peut voir que l'on peut se dispenser de l'objet XMLHttpRequest pour charger des données sur le serveur, ou exécuter des scripts coté serveur, cela à partir de JavaScript. Et le mode asynchrone ajoute la fluidité permise par Ajax. C'est donc une alternative à Ajax mais limitée. Et pour utiliser des fichiers XML il faut ajouter un support de ce format alors qu'il existe nativement dans l'objet XHR.
JavaScript peut exécuter des scripts PHP et charger des données sur le serveur. Exemple détaillé...
Le fichier JavaScript contient du code PHP, il a donc l'extension PHP pour être exécuté sur le serveur. Un fichier de code javascript peut avoir n'importe quelle extension et pas forcément l'extension ".js:".
<script src="monscript.php" type="text/javascript"></script>
La page HTML utilise la fonction hello qui est une fonction javascript définie dans ce fichier mais utilisant du code généré par l'interpréteur PHP:
<form name="form1" method="post" action=""> <input type="button" name="Submit" value="message" onclick="hello()"></form>
Le fichier moncript.php dont le contenu est en partie généré au chargement par l'interpréteur PHP:
<?php $x="Hello World!"; ?> function hello(){ alert("<?php echo $x ?>");}
Le code PHP est exécuté sur le serveur avant que le fichier JavaScript ne soit chargé. On peut ajouter du code pour accéder à des fichiers ou une base de donnée sur le serveur, et en retourner les résultats.
De même que l'objet XMLHttpRequest peut envoyer des données à un script coté serveur, on peut le faire avec un simple formulaire HTML.
<form name="form1" method="post" action="monscript.php"> <input type="text" name="message" value="mon message"> <input type="submit" name="Submit" value="Envoyer"></form>
Le script sur le serveur récupèrera les données du formulaire avec cette instruction PHP:
<?php $y = $_POST['message']; ?>
Il peut alors effectuer un traitement avec ces données et produire d'autres fichiers réutilisables de façon dynamiques par la page HTML. Ce ne sera pas aussi simple qu'avec Ajax.
JavaScript asynchrone est une alternative à Ajax ou Getch dans certains cas et est un moyen d'alléger les pages. Il ne permet pas une interactivité totale avec le serveur comme le fait l'objet XMLHttpRequest ou WebSocket.
JavaScript Asynchrone Tutoriel de ce procédé popularisé par Google dans Analytics.