执行php-js的顺序是什么?

时间:2015-10-08 05:01:19

标签: javascript php

     <?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内的代码而回响。是原因吗?它会一直有用吗?

3 个答案:

答案 0 :(得分:3)

在运行任何JavaScript之前,PHP都在服务器上运行。首先执行PHP,然后执行JavaScript。接下来,$(function(){ ... });意味着在DOM加载完成后运行JavaScript,因此alert($(".myClass").attr("data-attr"));仅在DOM加载后发生,这就是为什么它可以正常工作。

答案 1 :(得分:1)

PHP由接收您请求的服务器执行并呈现。 Javascript在收到contennt后由浏览器执行

use strict;
use warnings;
use Text::ParseWords;
my $var = q{Id;Id2;my name \'is Ankit;code};
my @words = quotewords('\;', 0, $var);
print scalar @words; #prints 4

解析后,浏览器会收到类似于以下内容的内容:

 <?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>

在此之后,它将执行javascript。

TL; DR:执行第一个php,然后执行javascript

答案 2 :(得分:0)

它会正常工作!但只是因为你用$(function()){}(简写为$( document ).ready())包围你的JS代码,否则浏览器可能会尝试首先执行你的JS代码,甚至在页面完全加载之前。 请记住,PHP将始终执行之前,当您的浏览器加载HTML页面时,PHP已在服务器端执行