2015-10-08 4 views
0
 <?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.Каков порядок выполнения php-js?

В моей JS файл, у меня есть что-то вроде

$(function(){ 
     alert($(".myClass").attr("data-attr")); 
    }); 

Это эхо правильное значение. Я не понимаю порядок исполнения. Потому что начальная часть на первом месте, затем мой div [myclass]. Поэтому оценка происходит позже.

Это эхо, из-за этого я окружаю код внутри domready. Это причина? Будет ли это работать всегда?

+1

https://learn.jquery.com/using-jquery-core/document-ready/, https://learn.jquery.com/about -jquery/how-jquery-works/ –

ответ

3

PHP запускается на сервере до запуска любого JavaScript. Итак, сначала выполняется PHP, затем JavaScript выполняется впоследствии. Далее $(function(){ ... }); означает запуск JavaScript после завершения загрузки DOM, поэтому alert($(".myClass").attr("data-attr")); происходит только после загрузки DOM, поэтому он будет работать правильно.

+0

thats well explain i think –

0

Он будет работать правильно! но только из-за того, что вы окружили свой код JS $(function()){} (стенография до $(document).ready()), в противном случае браузер может попытаться выполнить ваш код JS сначала, даже до полной загрузки страницы. Имейте в виду, что PHP всегда будет выполняться раньше, когда ваш браузер загружает HTML-страницу, PHP уже выполнялся на стороне сервера

1

PHP выполнен и отображен сервером, который получает ваш запрос. Javascript выполняется в браузере после получения contennt

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

Смежные вопросы