客户端和服务器端编程有什么区别? 为什么jQuery或像getElementById这样的DOM方法找不到元素? 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调用没有产生任何结果,它只是将“+ foo +”写入文件中。该<?php echo 42; ?>调用导致输出“42”,现在该代码曾经是该代码的位置。 生成的HTML / JavaScript代码现在发送到客户端,在那里进行评估。该alert呼叫工作,而foo变量没有任何地方使用。 在客户端甚至开始执行任何JavaScript之前,所有PHP代码都在服务器上执行。JavaScript可以与之交互的响应中没有任何PHP代码。 要调用某些PHP代码,客户端必须向服务器发送新的HTTP请求。这可以使用以下三种方法之一进行: 一个链接,导致浏览器加载新页面。 表单提交,将数据提交到服务器并加载新页面。 一个AJAX请求,它是一种向服务器发出常规HTTP请求的Javascript技术,但不离开当前页面。 为什么jQuery或像getElementById这样的DOM方法找不到元素? JavaScript中的变量范围是什么?