php-js的执行顺序是什么?
What is the order of execution php-js?
<?php
//Started or resumed the session
?>
<html>
<head>
<script type="text/javascript" src="myjavascript.js"></script>
</head>
<body>
<div class="myClass" data-attr=<?php echo $_SESSION["mySession"]?>></div>
</body>
</html>
这是我的php。
在我的js文件中,我有一些像
$(function(){
alert($(".myClass").attr("data-attr"));
});
返回正确的值。我不明白执行的顺序。因为头部分在前面,然后是div[myclass
]。因此,计算在稍后的时间点进行。
是否因为我将代码包围在domready
内而产生回声?这是原因吗?它会一直有效吗?
PHP在运行任何JavaScript之前在服务器上运行。首先执行PHP,然后执行JavaScript。接下来的$(function(){ ... });
意味着运行JavaScript一旦DOM完成加载,所以alert($(".myClass").attr("data-attr"));
只发生在DOM加载后,这就是为什么它会正常工作。
PHP由接收请求的服务器执行和呈现。浏览器在接收到
内容后执行Javascript。 <?php
//Started or resumed the session
//Not visible to the browser
echo "Something";
?>
<html>
<head>
<script type="text/javascript" src="myjavascript.js"></script>
</head>
<body>
<div class="myClass" data-attr=<?php echo $_SESSION["mySession"]?>></div>
</body>
</html>
解析后,浏览器接收到如下内容:
something
<html>
<head>
<script type="text/javascript" src="myjavascript.js"></script>
</head>
<body>
<div class="myClass" data-attr="whateverisinthesession"></div>
</body>
</html>
之后,它将执行javascript。
TL;DR:首先执行php,然后执行javascript
会正常工作的!但只是因为你用$(function()){}
(简称为$( document ).ready()
)包围了JS代码,否则浏览器可能会尝试先执行你的JS代码,甚至在页面完全加载之前。请记住,PHP总是在浏览器加载HTML页面之前执行,PHP已经在服务器端
相关文章:
- 淘汰js可观察扩展的执行顺序是什么
- CSS和Javascript之间的顺序是什么
- “goog.require”的包含顺序是什么
- Javascript中模数的优先顺序是什么?
- Javascript中布尔逻辑的顺序是什么
- 突变观察者收到的突变记录的顺序是什么?
- if 和 else 语句处理的顺序是什么
- 承诺回调的触发顺序是什么
- dojo.query() 的顺序是什么?
- 记住比较器函数的参数顺序的技巧是什么
- 加载 AngularJS 文件的正确顺序是什么
- html中python代码和javascript代码的执行顺序是什么
- angularjs组件的执行顺序是什么
- “0”的执行顺序是什么;开关箱”;在节点js中
- 多个指令的执行顺序是什么
- jQuery find-返回元素的顺序是什么
- Javascript中函数参数的求值顺序是什么?
- php-js的执行顺序是什么?
- 包含jquery文件的正确顺序是什么?
- 链接javascript函数.执行的顺序是什么?