Выполнять php скрипт при загрузке страницы выполнять
Добрый день!
У меня такая проблема:
Есть php скрипт, который несколькими потоками получает данные с другого домена.
Мне необходимо уменьшить время загрузки страницы, а точнее, чтобы этот скрипт начинал исполняться либо параллельно с загрузкой страницы, либо уже после её загрузки и выходные данные этого скрипта вставлялись в нужный div.
Использовать можно только jQuery или Prototype (с которыми я ещё не успел подружиться(()
Может Вы мне что-то посоветуете, т.к. задание очень срочное((
Минимум, что мне надо сделать — это чтобы после загрузки страницы в нужный div подгружались данные из php файла.
"http://site1.ua", 1 => "http://site2.ua", 2 => "http://site3.ua", 3 => "http://site4.ua", 4 => "http://site5.ua", 5 => "http://site6.ua", 6 => "http://site7.ua", 7 => "http://site8.ua", 8 => "http://site9.ua", 9 => "http://site10.ua" ); for($i=0; $i<10;$i++)< $fp = fsockopen ("tinyurl.com", 80, $errno, $errstr, 30); if (!$fp) < echo "$errstr ($errno)
\n"; > else < fwrite($fp, "POST /api-create.php?url=".$arr[$i]." HTTP/1.1\r\nHost: tinyurl.com \r\n". //"Content-Type: application/x-www-form-urlencoded\r\n". "Content-Length: 0\r\n". "Connection: close\r\n\r\n" ); while (!feof($fp)) < echo strstr(fgets ($fp,128),"http://"); >echo ""; > >
Проблема в том, что если этот aJax код вставить в любой файл, то он работает, но у меня есть обязательное условие — этот код надо запустить на сайте, написанном на фрэймворке CodeIgniter. И вот тут-то и возникает проблема. Пробовал его вызывать и во вьювере, и в контроллере, и с полными путями, и с относительными. Кароче, не работает он на сайте, сделанном при помощи CodeIgniter’a((
Может кто сталкивался с такой проблемой?
Как перед загрузкой страницы выполнить php код?
Надо например проверить куки и потом отправить данные. Но это нужно сделать в первую очередь. То есть наполнить станицу контентом.
Оценить 3 комментария
В php куки доступы при первом запросе страницы, а может и отправлять заголовки на установку куков, в чём именно вопрос?
JRK_DV, я должен проверить куки на наличие авторизованного пользователя а потом заполнить html соответствующими данными
pashaa, И в чем проблема?
Проверяете, отдаете нужный контент и страница готова.
Вам стоит почитать о PHP в целом.
PHP работает модулем сервера. Примерно: когда вы посылаете запрос серверу получить какойто файл, то сервер берёт этот файл, отправляет (например index.php) в модуль PHP, потом PHP когда выполнит скрипты с документом сразу возвращает его серверу, а сервер даёт его вам. То что вы хотите, так и есть уже на самом деле.
При использовании Cookies необходимо иметь в виду что Cookies должны устанавливаться до первого вывода информации в браузер (например, оперетором echo или выводом какой-либо функции). Поэтому желательно устанавливать Cookies в самом начале скрипта.
Ну допустим я запустил index.php и отправил там данные через echo?
Только не таким способом, то есть без вставки php в html или js.
Всю работу с Cookies скопируйте в самое начало скрипта, а потом пусть идёт всё остальное
PHP это сугубо серверный язык, он не работает в браузере вообще, никак, как например это может делать JavaScript и «там и там» с Node.js. Вы просто серверу, например Apache, говорите «Дай мне документ!», он его собирает там у себя при помощи PHP, и говорит вам в ответ «Вот! На тебе документ!» и всё. У вас в браузере ничего вообще не делается. То что вы делаете на PHP всё делается только на сервере, раньше это называлось Server-Side, это то что не Client-Side. Нужно точно разделять обязанности.
echo и print «врезают» в документ информацию которую вы укажите в виде результата формулы, или просто текстом, и отправят через локальную сеть/интернет вам.
Сформулируйте просто вопрос по другому, до тех пор, пока не получите на него ответ
Нет, вы не отправляете через echo данные, echo их только выводит, вставляет на сервере в документ который вы запросили. При помощи PHP вы управляете документами на сервере, вы не управляете браузерами.
В данном случае вы не отправляете никакие файлы из браузера, вы только их получаете, вы отправляете запросы, через GET / POST + URL документа в котором скрипт, и в ответ получаете готовый документ, который изменять в браузере уже не можете.
PHP намного проще чем вы думаете
Как сделать чтобы скрипт срабатывал при обновлении страницы?
Как сделать чтобы при загрузке, а лучше обновлении страницы срабатывал скрипт:
$(document).ready(function()< var $form = $('#filter'), $controls = $form.find('input,select,textarea'); $controls.on('change', function()< startLoadingAnimation(); $.post("/engine/ajax/filter.php", $("#filter").serialize(), function(response)< setTimeout(function(), 3000); >); >); >);
Он и так срабатывает при полностью загруженной странице.
Если хочешь именно во время загрузки — дерево DOM еще не построится и тебе нечего будет искать.
Если хочешь выполнить скрипт ПЕРЕД перезагрузкой страницы, покопай в сторону отлавливания события перезагрузки страницы, выполни свой скрипт а потом перезагрузи страницу.
Редактирую.
Вот так попробуй
$(document).ready(function()< var $form = $('#filter'), $controls = $form.find('input,select,textarea'); // отправка после загрузки страницы startLoadingAnimation(); $.post("/engine/ajax/filter.php", $("#filter").serialize(), function(response)< setTimeout(function(), 3000); >); // отправка по клику на Enter $controls.on('change', function()< startLoadingAnimation(); $.post("/engine/ajax/filter.php", $("#filter").serialize(), function(response)< setTimeout(function(), 3000); >); >); // или отправка при любом изменении в поле //$controls.on('keyup', function()< // startLoadingAnimation(); // $.post("/engine/ajax/filter.php", $("#filter").serialize(), function(response)< // setTimeout(function(), 3000); // >); //>); >);
Preloader загрузки php страницы
Как сделать preloader для php страницы? Скрипт долго выполняться, хотелось бы добавить preloader. Что то не чего на эту тему для php не нашел.
Понял что можно это сделать совместно с Ajax подгрузив php скрипт. (как это сделать я так и не нашел)
p.s Может у кого есть готовый пример или направьте куда рыть? Не знаю Ajax.
Подгружать картинки после загрузки страницы PHP
Здравствуйте, есть страницы с большим количеством картинок и они подгружаются с помощью подключения.
Как запустить php функцию после загрузки страницы?
Как запустить php скрипт, только после того как страница сайта загрузится полностью? Т.е. отложить.
хочу перейти с одной php страницы на другую, но вместо новой страницы появляется окно подтверждения
пытаюсь перейти с одной php-страницы на другую. но вместо новой страницы окно подтверждения и.
Сообщение было отмечено Deno95 как решение
Решение
Сообщение от Deno95
Можно делать по разному. Ajax вам не нужен, если не хотите делать что-то сложное, с отслеживанием загрузки — сколько процентов загружено, какой этап, что сейчас делает скрипт.
Самое простое вызвать событие, которое покажет картинку/див — «экран загрузки».
Например, у меня есть форма загрузки файла. Файл загружается и дальше с ним производятся действия. Длится это около 20-30 секунд.
Пользователь может не понять, когда загружает файл, что страница не изменилась. Может повторно щелнуть по кнопке.
Что бы этого не было, я по щелчку на кнопке не только выполняю скрипт, но и показываю див с надписью -Идёт загрузка. И картинку (часы).
Пример (взял из своего кода, практически рабочий)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
//ЭКРАН - ИДЁТ ЗАГРУЗКА //Переменная для добавления к ссылке $show_loading_screen="onclick=\"getElementById('loading_bg').style.display='block';\""; //Сам экран echo'