recherche

Maison  >  Questions et réponses  >  le corps du texte

Quelle est la différence entre la programmation côté client et côté serveur ?

<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>
P粉757640504P粉757640504493 Il y a quelques jours615

répondre à tous(2)je répondrai

  • P粉111927962

    P粉1119279622023-08-23 15:50:54

    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.

    Ainsi, lorsque vous effectuez une requête

    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
    1. HTTPdemande
    2. Vous pouvez utiliser JavaScript pour passer des appels AJAX - cela ne nécessite pas de recharger la page

    Bon matériel de lecture :

    1. Wikipédia : Scripts côté serveur
    2. Wikipédia : Script client
    3. Madara Uchiha : La différence entre la programmation côté client et côté serveur
    4. répondre
      0
  • P粉103739566

    P粉1037395662023-08-23 09:17:40

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

                        |
                   ---------->
                  HTTP请求
                        |
    +--------------+    |    +--------------+
    |              |    |    |              |
    |    浏览器    |    |    |  网络服务器 |
    | (JavaScript) |    |    |  (PHP等)    |
    |              |    |    |              |
    +--------------+    |    +--------------+
                        |
      客户端            |      服务器端
                        |
                   <----------
              HTML, CSS, JavaScript
                        |
    

    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 :

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

    Dans la première étape, PHP exécute tout le code entre les <?php ?>tags. Les résultats sont les suivants :

    <script type="text/javascript">
        var foo = 'bar';
    
        var baz = 42;
        alert(baz);
    </script>

    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调用起作用,而fooLa 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 :

    1. 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 AJAX, qui est une technologie JavaScript utilisée pour faire une requête HTTP régulière au serveur (similaire à 1 et 2), mais sans quitter la page en cours.

    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.

    répondre
    0
  • Annulerrépondre