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

死:

我有以下代码:

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

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

为什么这不将“ bar”写到我的文本文件中,但提示“ 42”?


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

死:

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

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

双方通过HTTP请求和响应进行通信。PHP在服务器上执行,并输出一些HTML甚至JavaScript代码,这些代码作为响应发送到客户端,在客户端解释HTML并执行JavaScript。PHP完成输出响应后,脚本结束,并且在服务器上什么都不会发生,直到有新的HTTP请求进入为止。

示例代码执行如下:

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

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

步骤1,PHP执行<?php ?>标记之间的所有代码结果是这样的:

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

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

file_put_contents呼叫并没有导致任何东西,它只是写了“+富+”到文件中。<?php echo 42; ?>调用导致输出“ 42”,该输出现在位于该代码以前所在的位置。

现在,此生成的HTML / JavaScript代码将发送到客户端,在此进行评估。alert调用有效,而该foo变量未在任何地方使用。

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

要调用一些PHP代码,客户端将必须向服务器发送新的HTTP请求。使用三种可能的方法之一可以发生这种情况:

  1. 链接,使浏览器加载新页面。
  2. 表单提交,它将数据提交到服务器并加载新页面。
  3. 一个AJAX请求,这是一个JavaScript技术,使一个普通的HTTP请求到服务器(如1和2会),而无需离开当前页面。

这是一个更详细地概述这些方法的问题

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于客户端的会话和服务器端会话有什么区别?

OpenApi / Swagger-客户端和服务器有什么区别?

客户端和服务器API有什么区别

Golang的“ net / http”中的客户端HTTP请求和服务器HTTP请求有什么区别

客户端和服务器端渲染之间的区别

客户端/服务器编程

什么是客户端和服务器端数据表处理?

如何在客户端和服务器之间的.c编程中建立sip会话

真的,ASP.NET Core Hosted和服务器端Blazor有什么区别?

跨度类型客户端和跨度类型服务器有什么区别?

在客户端和服务器端格式之间转换数据的正确术语是什么?

使用客户端和服务器端渲染来反应同构组件

新行在客户端和服务器端如何分类?

是否可以在客户端和服务器端都关闭Java套接字?

客户端路由(使用react-router)和服务器端路由

客户端路由(使用react-router)和服务器端路由

Meteor JS中的客户端和服务器端验证

客户端和服务器端javascript中“ this”的值之间的差异

在客户端和服务器端使用相同的呈现代码

用令牌认证客户端和服务器端的正确方法?

[symfony] [backbone]客户端和服务器端使用相同的模板

在客户端和服务器端之间发送信息和变量

客户端JS和服务器端C#通信

分离客户端和服务器端部署JavaEE和网站开发

ASP.Net MVC客户端和服务器端计算

客户端和服务器端(GWT)之间的日期更改

套接字编程-简单的客户端/服务器

Dhcp客户端:客户端发送主机名和向Dhcp服务器请求主机名有什么区别?

Java客户端-服务器编程:客户端之间的共享内存