Programmation côté client ou côté serveur : comprendre les différences
P粉141035089
P粉141035089 2023-10-19 16:00:04
0
2
693

J'ai ce code :

<script type="text/javascript">
    var foo = 'bar';
    <?php
        file_put_contents('foo.txt', ' + foo + ');
    ?>

    var baz = <?php echo 42; ?>;
    alert(baz);
</script>

Pourquoi cela n'écrit-il pas "bar" dans mon fichier texte mais avertit à la place "42" ?


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 pour n'importe quellelangue. Pensez-y lorsque vous voyez des réponses qui parlent d’une langue spécifique.

P粉141035089
P粉141035089

répondre à tous(2)
P粉717595985

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 (PHP, etc.)  : Ils récupèrent les enregistrements de la base de données, se connectent via stateless HTTP et effectuent de nombreuses opérations qui nécessitent une sécurité. Ils résident sur le serveur et ces programmes n'exposent jamais leur code source aux utilisateurs.

Vous pouvez donc facilement voir que le langage côté serveur gère les requêtes HTTP et les traite, et, comme @deceze l'a dit, PHP s'exécute sur le serveur et génère du code HTML et peut-être JavaScript, qui est envoyé au client en tant que réponse. , qui interprète HTML et exécute JavaScript.

D'autre part, les langages côté client (comme JavaScript) résident et s'exécutent dans le navigateur. Script côté client fait généralement référence à une classe de programmes informatiques sur le réseau qui sont exécutés côté client par le navigateur Web d'un utilisateur, plutôt que côté serveur. p>

JavaScript est visible par l'utilisateur et peut être modifié facilement, donc pour des raisons de sécurité, nous ne pouvons pas compter sur JavaScript.

Ainsi, lorsque vous faites une requête HTTP au serveur, le serveur lit d'abord attentivement le fichier PHP pour voir si des tâches doivent être effectuées, puis envoie une réponse au client. Encore une fois, comme @deceze l'a dit, *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. *

Alors maintenant, que dois-je faire si j'ai besoin d'appeler PHP ? Cela dépend de la manière dont vous devez procéder : en rechargeant la page ou en utilisant un appel AJAX.

  1. Vous pouvez le faire en rechargeant la page et en envoyant une requête HTTP
  2. Vous pouvez utiliser JavaScript pour passer des appels AJAX - cela ne nécessite pas de recharger la page

Bonne lecture :

  1. Wikipédia : Scripts côté serveur
  2. Wikipédia : Script client
  3. Madara Uchiha : Différences entre la programmation côté client et côté serveur
P粉256487077

Votre code est divisé en deux parties complètement indépendantes, côté serveur et côté client.

                    |
               ---------->
              HTTP request
                    |
+--------------+    |    +--------------+
|              |    |    |              |
|    browser   |    |    |  web  server |
| (JavaScript) |    |    |  (PHP etc.)  |
|              |    |    |              |
+--------------+    |    +--------------+
                    |
  client side       |      server side
                    |
               

Les deux parties communiquent via des requêtes et des 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ù le HTML est interprété et le JavaScript est exécuté. 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.

L'exemple de code est exécuté comme suit :

sssccc

Étape 1, PHP exécute tout le code entre les tags. Le résultat est le suivant :

sssccc

file_put_contents 调用没有产生任何结果,它只是将“ + foo + ”写入文件。 L'appel aboutit à la sortie "42", qui se trouve désormais là où se trouvait initialement le code.

Le code HTML/JavaScript généré est maintenant envoyé au client et y est évalué. alert 调用有效,而 foo Variable non 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 ne reste plus de code PHP dans la réponse avec lequel JavaScript peut interagir.

Pour appeler certains codes PHP, le client doit envoyer une nouvelle requête HTTP au serveur. Ceci peut être réalisé en utilisant l'une des trois méthodes possibles :

  1. Un lien qui amène le navigateur à charger une nouvelle page.
  2. Soumission du formulaire, soumet les données au serveur et charge une nouvelle page.
  3. Requête
  4. AJAX, qui est une technologie Javascript utilisée pour générer des requêtes HTTP régulières vers le serveur (illustré en 1. et 2.) sans quitter la page actuelle.

Voici une question décrivant ces méthodes plus en détail

Vous pouvez également utiliser JavaScript pour indiquer au navigateur d'utiliser window.location pour ouvrir une nouvelle page ou soumettre un formulaire, en simulant les possibilités 1. et 2.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal