【问题标题】:What happens when PHP is inlined in html (or other web files)?当 PHP 在 html(或其他 web 文件)中内联时会发生什么?
【发布时间】:2015-06-15 18:20:04
【问题描述】:

我是网络开发的新手。我已经用谷歌搜索了这个问题,但没有找到结果。首先,请考虑以下代码:

<p id="par">Hello World</p>

如果您有 PHP 设置,以下是有效的:

<p id="par"><?php echo "Hello World";?></p>

两者产生相同的结果,但我记得 PHP 代码是在服务器中执行的,因此关于代码的执行出现以下问题:

&lt;p&gt;&lt;/p&gt; 元素是否首先从服务器检索,而一些后台 ajax 进程等待“Hello World”?

我真的很想知道,这样我就可以编写更可预测的代码。另一个困扰我的可能场景是在使用 javascript 和/或 jQuery 时:

$(document).load(function(){
   $("#foo").width($("#par").width());
});

这提出了一个问题,它是等待 PHP 服务器请求完成还是只是加载页面,因此,一些需要对上面 &lt;p&gt; 元素的大小做出反应的代码将是一个错误?

再次,请原谅初学者的问题。

【问题讨论】:

  • $(document).load(function() 意味着它会在网页加载后加载该函数,它不会打扰 PHP Server 请求和所有
  • @SulthanAllaudeen 那么,你是说$("#foo").width($("#par").width()) 不会按预期工作吗?
  • @JoeyAndres 好吧,如果您是 Web 开发新手,是不是该学习它了?书籍、指南、课程?学习基础知识将有助于消除很多问题。
  • 这并不是不能按预期工作。它按预期工作。你想让它在 php 服务器响应后运行吗?
  • @Regent 我正在学习它。这有点自卑。我在问一个关于执行流程尚未被问过的基本问题,你就这样贬低其他人吗?为什么?

标签: javascript php jquery html dom


【解决方案1】:

PHP 它是服务器端程序语言。所有代码在返回客户端之前都会在服务器上进行处理。

我相信在您的情况下 JavaScript 是客户端部分。所以。 PHP 将首先生成 HTML。然后浏览器加载 HTML(已经带有“Hello World”)和 Javascript。最后 Javascript 将可以访问#foo DOM 元素。

但这里可能是 Javascript 在 HTML 之前加载的情况。在这种情况下 $("#foo").width($("#par").width()) 将不执行任何操作或抛出错误,因为尚不存在 #par 元素。要解决此问题,您必须确保 Javascript 在所有 HTML 加载后开始工作。为此,您可以使用:

   $(document).load(function() {
          $("#foo").width($("#par").width())
   });

希望对你有帮助。

【讨论】:

    【解决方案2】:

    好的,当你在浏览器栏中输入一个 url 并按下回车键时,你的浏览器正在向服务器生成一个 http 请求。

    例如:

    www.example.com/ -> 向 example.com 服务器请求页面 index.html,它只是文本。

    当你有类似的东西时: www.example.com/test.php -> 再次只是将所有 php 转换为文本并返回该文本。

    例如,您可以在 Firebug 的“网络”选项卡上看到这一点。

    所以 PHP 只是线性地为你生成 html 代码。

    那么关于你的问题:

    不,它不会被窃听。如果您分析从这两个案例中收到的 html 代码,您会发现它们是相同的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-29
      • 2017-07-12
      • 2012-08-17
      • 2011-11-07
      • 2013-10-13
      • 2015-09-14
      • 1970-01-01
      相关资源
      最近更新 更多