Quelle est la différence entre la programmation côté client et côté serveur ?
P粉757640504
2023-08-22 20:26:21
<p>J'ai ce code :</p>
<pre class="brush:php;toolbar:false;"><script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42 ?>;
alerte(baz);
</script></pre>
<p>Pourquoi ce code n'écrit-il pas "bar" dans mon fichier texte, mais affiche-t-il "42" ? </p>
<heure />
<p>Remarque : une révision antérieure de cette question traitait explicitement de PHP sur le serveur et de JavaScript sur le client. Lorsqu'une langue s'exécute sur le client et une autre sur le serveur (même s'il s'agit de la même langue), la nature du problème et la solution sont les mêmes. Veuillez en tenir compte lorsque vous voyez des réponses sur des langues spécifiques. </p>
Pour déterminer pourquoi le code PHP ne fonctionne pas dans le code JavaScript, nous devons comprendre ce que sont les langages côté client et côté serveur, et comment ils fonctionnent.
Langages côté serveur (comme PHP, etc.) : Ils récupèrent les enregistrements de la base de données, maintiennent l'état des connexions HTTPsans état et effectuent de nombreuses opérations qui nécessitent une sécurité. Ils résident sur le serveur et le code source de ces programmes n'est jamais exposé aux utilisateurs.
Vous pouvez donc facilement voir que le langage côté serveur gère la requête HTTP et la traite, comme @deceze l'a dit,PHP s'exécute sur le serveur et génère du code HTML, et éventuellement du code JavaScript, et celui-ci est envoyé en réponse au côté client. , où HTML est interprété et JavaScript est exécuté.
D'un autre côté,un langage côté client (comme JavaScript) réside et s'exécute dans le navigateur. Script côté clientfait généralement référence à un programme informatique sur le Web qui est exécuté par le navigateur Web de l'utilisateur plutôt que par le serveur.
JavaScript est visible par l'utilisateur et peut être facilement modifié, donc pour des problèmes de sécurité, nous ne pouvons pas compter sur JavaScript.HTTP sur le serveur, le serveur lit d'abord attentivement le fichier PHP pour voir s'il y a une tâche à effectuer et envoie une réponse au client. Encore une fois, comme @deceze l'a dit, *une fois que PHP aura fini de générer la réponse, le script se terminera et rien ne se passera sur le serveur jusqu'à ce qu'une nouvelle requête HTTP soit reçue. *
Alors, que dois-je faire si je dois appeler PHP ? Cela dépend de la manière dont vous devez le faire : en rechargeant la page ou en utilisant un appel AJAX.Vous pouvez le faire en rechargeant la page et en envoyant une- HTTPdemande
Vous pouvez utiliser JavaScript pour passer des appels AJAX - cela ne nécessite pas de recharger la page-
Bon matériel de lecture :
Votre code est divisé en deux parties complètement indépendantes, côté serveur et côté client.
Ces deux parties communiquent via des requêtes et réponses HTTP. PHP s'exécute sur le serveur et génère du code HTML et éventuellement du code JavaScript, qui est envoyé en réponse au client, où il interprète le HTML et exécute le JavaScript. Une fois que PHP a fini de générer la réponse, le script se termine et rien ne se passe sur le serveur jusqu'à ce qu'une nouvelle requête HTTP arrive.
Le processus d'exécution de l'exemple de code est le suivant :
Dans la première étape, PHP exécute tout le code entre les
<?php ?>
tags. Les résultats sont les suivants :file_put_contents
调用没有产生任何结果,它只是将" + foo + "写入文件中。而<?php echo 42; ?>
Le résultat de l'appel est la sortie "42", qui correspond désormais à l'endroit où se trouvait le code d'origine.Le code HTML/JavaScript résultant est maintenant envoyé au client, où il est évalué.
alert
调用起作用,而foo
La variable n'est utilisée nulle part.Tout le code PHP est exécuté sur le serveur avant que le client ne commence à exécuter du JavaScript. Il n'y a plus de code PHP dans la réponse pour interagir avec JavaScript.
Pour appeler du code PHP, le client doit envoyer une nouvelle requête HTTP au serveur. Cela peut être réalisé de trois manières possibles :
Voici une question décrivant ces méthodes plus en détail
Vous pouvez également utiliser JavaScript pour que le navigateur ouvre une nouvelle page en utilisant
window.location
ou soumettre un formulaire, simulant les possibilités 1 et 2.