javascript - 当 PHP 内联到 html(或其他 Web 文件)中时会发生什么?

标签 javascript php jquery html dom

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

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

如果您设置了 PHP,则以下内容有效:

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

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

<p></p>首先从服务器检索元素,而某些后台 ajax 进程等待“Hello World”?

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

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

这提出了一个问题,它是等待 PHP 服务器请求完成还是只是加载页面,因此,一些代码需要对 <p> 的大小使用react上面的元素会是一个错误吗?

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

最佳答案

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())
   });

希望这对您有帮助。

关于javascript - 当 PHP 内联到 html(或其他 Web 文件)中时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29554509/

相关文章:

C# (.NET) 处理 Javascript 数组/序列化

php - MySQL选择两个字段不同时在数组中

javascript - 电子邮件和密码与即时用户反馈匹配

javascript - ReactJS父组件多次重新渲染子组件

javascript - Angular 2 : How do I get params of a route from outside of a router-outlet

php - 简化: mysqli num_rows not working

php - 如何在 PHP 变量中用空格替换制表符?

javascript - 文本不在第二行拆分

javascript - 如何在 javascript 中将相关的 HTML 元素绑定(bind)在一起?

javascript - 通过弹出窗口更改网址