mirniycruxix
@mirniycruxix

Как узнать загрузилась ли страница PHP?

Как узнать загрузилась ли страница на PHP?

Например: Загрузилась страница и появилось
echo "Loaded " . if($_GET['a']) { echo $_GET['a'] } else { "Page" }
  • Вопрос задан
  • 334 просмотра
Решения вопроса 4
Adamos
@Adamos
"Вопрошающий оперирует ложной моделью Вселенной" (с) Ответчик.
Довольно обычное для начала изучения РНР по учебникам "для чайников" непонимание его роли.

РНР получает запрос от пользователя, формирует текст страницы и отдает его. Все. Больше никакого интерактива.
Нужно что-то получить после загрузки страницы, или по нажатию на кнопку, или по ссылке без перезагрузки страницы - используйте JS, отправляйте AJAX-запрос другому РНР-скрипту и пристраивайте в браузере его ответ, куда надо.
Ответ написан
Комментировать
AlexNest
@AlexNest
Работаю с Python/Django
Бекэнд в целом и PHP в частности не знает и не может знать, что происходит у клиента в браузере. Он просто "лежит" на сервере и по требованию отдает данные.
Отлавливать события в браузере, в т.ч. и загрузку, может JS. Смотрите в его сторону
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
есть понятие URI (URL)
броузер обращается к сайту
В запросе передается URL , служебные заголовки (авторизация и куки это в заголовках) , также может быть тело запроса ( поля формы, файлы, ajax).

Передать из js в PHP проще всего послав ajax запрос.
На такой запрос чаще всего в ответ получают json (то есть PHP не генерирует html , а посылает нужные заголовки в ответ и кодированные в json данные)

При генерации HTML кода страницы можно аналогично собрать js вставку. Простейшая
<script>
  var foo="<?php  echo $foo;?>";
</script>
Ответ написан
Комментировать
@rPman
Александр Нестеров правильно написал
добавлю что определить конец загрузки страницы в браузере на самом деле не так просто как кажется даже на javascript, например если используются сторонние элементы (изображения, скрипты), загружаемые не с вашего сервера (например плеер)

в некоторых случаях можно управлять предзагрузкой самостоятельно, и надеяться на работающее кеширование в браузере, т.е. ты загружаешь изображение на javascript, и получаешь гарантию что если ты в скрипте его загрузил то значит оно точно будет загружено на странице (кстати так можно в принципе формировать содержимое страницы полностью скриптами, прописывая уже загруженное изображение создаваемым элементам)

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

Поэтому в скрипте на это событие делай запрос на веб сервер (fetch или XMLHttpRequest или любую библиотеку, например jquery ajax) а уже на веб сервере сохраняй это событие где-надо, в базе или в сессии
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@R7YZ
Прошу помощи, своего ума уже не хватаем :-).
Ситуация вроде бы простая, на сайте содержание страницы меняются в фоновом режиме (ajax). Когда нажимаю на пункт меню содержание меняется и ID новой страницы сохраняется в сессии. При нажатии на F5 или другом способе перезагрузке из сессии берется ID и страница с текущим содержимым перегружается правильно.
Есть проблема с первой загрузкой страницы. В сессии ID главной страницы еще нет и страница загружается пустая.
Что посоветуете сделать?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы