Javascript 客户端编程和服务器端编程有什么区别?

Javascript 客户端编程和服务器端编程有什么区别?,javascript,php,client-side,server-side,Javascript,Php,Client Side,Server Side,我有以下代码: <script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script> var foo='bar'; var baz=; 警报(baz);

我有以下代码:

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

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

var foo='bar';
var baz=;
警报(baz);
为什么它不将“bar”写入我的文本文件,而是提醒“42”



注意:这个问题的早期版本是关于服务器上的PHP和客户端上的JavaScript的。当一种语言在客户机上运行,另一种语言在服务器上运行时,问题和解决方案的本质对于任何一对语言都是相同的(即使它们是相同的语言)。当您看到有关特定语言的答案时,请考虑到这一点。

您的代码分为两个完全独立的部分,服务器端和客户端

|
---------->
HTTP请求
|
+--------------+    |    +--------------+
|              |    |    |              |
|浏览器| | | web服务器|
|(JavaScript)| | |(PHP等)|
|              |    |    |              |
+--------------+    |    +--------------+
|
客户端|服务器端
|
;
警报(baz);
第1步,PHP执行
标记之间的所有代码。结果是:

<script type="text/javascript">
    var foo = 'bar';

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

var foo='bar';
var baz=42;
警报(baz);
file\u put\u contents
调用没有产生任何结果,它只是将“+foo+”写入一个文件。
调用产生了输出“42”,它现在位于代码原来所在的位置

生成的HTML/JavaScript代码现在被发送到客户端,在那里对其进行评估。
alert
调用有效,而
foo
变量不在任何地方使用

在客户端开始执行任何JavaScript之前,所有PHP代码都会在服务器上执行。响应中没有任何PHP代码可以与JavaScript交互。

要调用一些PHP代码,客户端必须向服务器发送一个新的HTTP请求。这可以通过以下三种可能的方法之一实现:

  • 链接,使浏览器加载新页面
  • 表单提交,向服务器提交数据并加载新页面
  • 请求,这是一种Javascript技术,用于向服务器发出常规HTTP请求(如1.will和2.will),但不离开当前页面

  • 您还可以使用JavaScript使浏览器使用
    window.location
    打开新页面,或提交表单,模拟可能性1。和2.

    您的代码分为两个完全独立的部分,服务器端和客户端

    |
    ---------->
    HTTP请求
    |
    +--------------+    |    +--------------+
    |              |    |    |              |
    |浏览器| | | web服务器|
    |(JavaScript)| | |(PHP等)|
    |              |    |    |              |
    +--------------+    |    +--------------+
    |
    客户端|服务器端
    |
    ;
    警报(baz);
    
    第1步,PHP执行
    标记之间的所有代码。结果是:

    <script type="text/javascript">
        var foo = 'bar';
    
        var baz = 42;
        alert(baz);
    </script>
    
    
    var foo='bar';
    var baz=42;
    警报(baz);
    
    file\u put\u contents
    调用没有产生任何结果,它只是将“+foo+”写入一个文件。
    调用产生了输出“42”,它现在位于代码原来所在的位置

    生成的HTML/JavaScript代码现在被发送到客户端,在那里对其进行评估。
    alert
    调用有效,而
    foo
    变量不在任何地方使用

    在客户端开始执行任何JavaScript之前,所有PHP代码都会在服务器上执行。响应中没有任何PHP代码可以与JavaScript交互。

    要调用一些PHP代码,客户端必须向服务器发送一个新的HTTP请求。这可以通过以下三种可能的方法之一实现:

  • 链接,使浏览器加载新页面
  • 表单提交,向服务器提交数据并加载新页面
  • 请求,这是一种Javascript技术,用于向服务器发出常规HTTP请求(如1.will和2.will),但不离开当前页面

  • 您还可以使用JavaScript使浏览器使用
    window.location
    打开新页面,或提交表单,模拟可能性1。和2.

    您的Javascript将在客户端而不是服务器上执行。这意味着
    foo
    不会在服务器端计算,因此其值无法写入服务器上的文件


    考虑此过程的最佳方式是,将其视为动态生成文本文件。您生成的文本只有在浏览器解释后才成为可执行代码。只有放置在
    之间的内容才会在客户端而不是服务器上执行。这意味着
    foo
    不会在服务器端计算,因此其值无法写入服务器上的文件

    考虑此过程的最佳方式是,将其视为动态生成文本文件。您生成的文本只有在浏览器解释后才成为可执行代码。只有在
    之间放置什么才能确定为什么PHP代码不能在JavaScript代码中工作,我们需要了解什么是客户端服务器端语言,以及它们是如何工作的

    服务器端语言(PHP等):它们从数据库中检索记录,在服务器端维护状态,并执行许多需要安全性的操作。它们驻留在服务器上,这些程序从不向用户公开其源代码

    因此,您可以很容易地看到服务器端语言处理HTTP请求并对其进行处理,正如@deceze所说,PHP就是e