Почему работает php через javascript?

Может ли кто-нибудь объяснить пошаговый цикл запроса и ответа в этом сценарии? И да, это работает (если у вас есть рабочий PHP-сервер).

for(var i=0; i<10; i++){
var test = "<?php echo 'test'; ?>";
console.log(test);
}

пожалуйста не попугайте определение AJAX в Википедии, или что php на стороне сервера, а javascript на стороне клиента, я знаю об этом.

Моя проблема в том, что я не могу обернуть свой мозг, который в этом сценарии стоит первым. Я думаю, что сначала выполняется js, а на сервер отправляется запрос, но разве это не AJAX? И если js не выполняется первым, как сервер может знать, что нужно выполнить php (то есть echo «test»), вместо того, чтобы просто предоставлять текстовую версию тега php?

-1

Решение

Попробуйте посмотреть на это как на слои. Как я уверен, вы знаете, что php работает на сервере и javascript на клиенте. Вот как я думаю, что это течет

  • отображаемая страница должна откуда-то появиться, и в данном случае это сервер, к счастью, здесь также выполняется php, поэтому весь код php выполнялся перед отправкой на сервер. т.е. даже код эха
  • echo test уже запущен на сервере, и строка ‘test’ была создана в довольно удачном месте — в объявлении переменной javascript.
  • так что, как мы видим, сервер только что отправил «var test = ‘test'» и не выполняет никакого javascript, поэтому «var» не имеет значения для сервера
  • когда это достигает браузера с сервера, это действительно имеет смысл и выполняется!

таким образом, для сервера ‘var test =’ это просто строка ‘var test = «test»;’ в то время как для Javascript в браузере это означает, что переменная test содержит строку ‘test’

Редактировать: если используется в цикле for страницы, отправленной с сервера, когда страница достигает браузера, где бы ни появлялся php-скрипт echo, уже есть отображаемая строка

1

Другие решения

Вы запрашиваете файл .php с сервера, который затем анализирует, а затем обрабатывает для предоставления клиенту. В процессе рендеринга эхо выводит строку так var test = "<?php echo 'test'; ?>"; становится var test ="test" на выходе. Браузер интерпретирует вывод (html) и выполняет любой из javascript в этой точке. В предложенном вами сценарии нет Ajax, поэтому вы можете запутаться.

1

Шаг 1) PHP готовит страницу для анализа вашим браузером. Фактический исходный код, отправленный в ваш браузер:

var test = "test";
alert(test);

Вы должны быть в состоянии просмотреть источник на полученной странице и увидеть это. Вы не делаете вызов на стороне сервера, вы просто загружаете текст на страницу браузера через PHP

1

Я постараюсь изложить это как можно проще. Вы знаете, что PHP на стороне сервера, а JS на стороне клиента, и вы правы в этом аспекте.

PHP как язык выполняет все, что он делает, чтобы генерировать HTML-контент для отправки клиенту (браузеру). Поэтому, когда вы запускаете свой JavaScript:

for(var i=0; i<10; i++){
var test = "<?php echo 'test'; ?>";
console.log(test);
}

PHP оценивается еще до того, как JavaScript узнает, что он что-то сделал. По сути, ваш маленький скрипт выглядит так:

for(var i=0; i<10; i++){
var test = "test";
console.log(test);
}

В вашем скрипте нет ajax.

1
По вопросам рекламы [email protected]