有人可以在这种情况下逐步解释请求和响应周期吗?是的,它确实有效(如果你有一个工作的PHP后端)。
for(var i=0; i<10; i++){
var test = "<?php echo 'test'; ?>";
console.log(test);
}
请不要嘲笑维基百科的AJAX定义或者php是服务器端而javascript是客户端,我知道这些事情。
我的问题是,在这种情况下,我无法将我的大脑包围在哪里。我的想法是首先执行js并将请求发送到服务器但是基本上不是AJAX吗?如果没有先执行js,服务器怎么可能知道执行php(即echo“test”)而不是只提供php标签的纯文本版本?
答案 0 :(得分:1)
您从服务器请求一个.php文件,然后该文件将解析,然后呈现给客户端提供服务。在渲染过程中,echo输出一个字符串,使var test = "<?php echo 'test'; ?>";
在输出中变为var test ="test"
。浏览器解释输出(html)并在该点执行任何javascript。您提供的方案中没有涉及Ajax,这就是您可能会感到困惑的原因。
答案 1 :(得分:1)
步骤1)PHP准备要由浏览器解析的页面。发送到您浏览器的实际源代码是:
var test = "test";
alert(test);
您应该能够在结果页面上查看源代码并查看此内容。您没有进行服务器端呼叫,只是通过PHP将文本加载到浏览器页面
答案 2 :(得分:1)
尝试将其视为图层。因为我确定你知道php在服务器和客户端的javascript上运行。这就是我认为它的流动方式
因此,对于服务器,&#39; var test =&#39;只是字符串&#39; var test =&#34; test&#34 ;;&#39;而对于浏览器中的Javascript,它意味着变量test包含一个字符串&#39; test&#39;
编辑:如果在从服务器发送的页面的for循环中使用,当页面到达浏览器的任何地方出现echo php脚本时,已经有回显的字符串
答案 3 :(得分:1)
我会尝试尽可能简单地说出来。你知道PHP是服务器端,JS是客户端,你在这方面是正确的。
PHP作为一种语言运行它生成的HTML内容以推送到客户端(浏览器)。所以当你运行你的javascript:
for(var i=0; i<10; i++){
var test = "<?php echo 'test'; ?>";
console.log(test);
}
在javascript知道它完成任何事情之前评估PHP。基本上使你的小脚本看起来像这样:
for(var i=0; i<10; i++){
var test = "test";
console.log(test);
}
上面的脚本中没有涉及ajax。