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. 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, cela à partir de JavaScript. Et le mode asynchrone ajoute la fluidité qui est autrement permise avec Ajax ou Fetch. C'est donc une alternative à Ajax mais limitée.
JavaScript peut exécuter des scripts PHP et charger des données sur le serveur. Exemple détaillé...
On charge un fichier JavaScript "monscript.php" avec une extension PHP mais un JavaScript généré par l'interpréteur PHP au moment du chargement.
Le fichier JavaScript contenant du code PHP a l'extension PHP pour que ce code soit 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>
Le code PHP génère une fonction JavaScript, hello() qui devient alors utilisable par la page en ligne.
<form name="form1" method="post" action=""> <input type="button" name="Submit" value="message" onclick="hello()"></form>
Contenu du fichier moncript.php dont le contenu JS 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é. Au-delà de cet exemple simple, 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="autrescript.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 Fetch dans certains cas et est un moyen d'alléger les pages. Il ne permet pas une interactivité totale avec le serveur comme le font l'objet XMLHttpRequest, Fetch ou WebSocket.
JavaScript Asynchrone Tutoriel de ce procédé popularisé par Google dans Analytics.