Выполнять php скрипт при загрузке страницы выполнять

Выполнять 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 комментария

JRK_DV

В php куки доступы при первом запросе страницы, а может и отправлять заголовки на установку куков, в чём именно вопрос?

JRK_DV, я должен проверить куки на наличие авторизованного пользователя а потом заполнить html соответствующими данными

sayber

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

Olek1

d3881277d51243fd9706e66ec86089c9.jpg

PHP работает модулем сервера. Примерно: когда вы посылаете запрос серверу получить какойто файл, то сервер берёт этот файл, отправляет (например index.php) в модуль PHP, потом PHP когда выполнит скрипты с документом сразу возвращает его серверу, а сервер даёт его вам. То что вы хотите, так и есть уже на самом деле.

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

Ну допустим я запустил index.php и отправил там данные через echo?
Только не таким способом, то есть без вставки php в html или js.

Читайте также:  Javascript функция передача объекта

Olek1

Всю работу с Cookies скопируйте в самое начало скрипта, а потом пусть идёт всё остальное

PHP это сугубо серверный язык, он не работает в браузере вообще, никак, как например это может делать JavaScript и «там и там» с Node.js. Вы просто серверу, например Apache, говорите «Дай мне документ!», он его собирает там у себя при помощи PHP, и говорит вам в ответ «Вот! На тебе документ!» и всё. У вас в браузере ничего вообще не делается. То что вы делаете на PHP всё делается только на сервере, раньше это называлось Server-Side, это то что не Client-Side. Нужно точно разделять обязанности.

echo и print «врезают» в документ информацию которую вы укажите в виде результата формулы, или просто текстом, и отправят через локальную сеть/интернет вам.

Сформулируйте просто вопрос по другому, до тех пор, пока не получите на него ответ

Olek1

Нет, вы не отправляете через echo данные, echo их только выводит, вставляет на сервере в документ который вы запросили. При помощи PHP вы управляете документами на сервере, вы не управляете браузерами.

В данном случае вы не отправляете никакие файлы из браузера, вы только их получаете, вы отправляете запросы, через GET / POST + URL документа в котором скрипт, и в ответ получаете готовый документ, который изменять в браузере уже не можете.

PHP намного проще чем вы думаете
cedacc5332fb4f76bcdf3693bde0ce36.jpg fe1fa45a2d604057aadf26b62e4d98f4.jpg

Источник

Как сделать чтобы скрипт срабатывал при обновлении страницы?

Как сделать чтобы при загрузке, а лучше обновлении страницы срабатывал скрипт:

$(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); >); >); >);

nepritimov_m

Он и так срабатывает при полностью загруженной странице.
Если хочешь именно во время загрузки — дерево 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); // >); //>); >);

Источник

Читайте также:  Next keyword in java

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' 

PS
Основной смысл — вызвать этот экран закрузки/div до выполнения скрипта.
Сначала будет вызван экран закрузки/div, потом начнет выполнятся скрипт. Скрипт выполняется долго. Пока он не выполнится — на экране пользователя будет экран закрузки/div.

Добавлено через 7 часов 1 минуту

Цитата

Сообщение от Deno95

спасибо за пример preloader, можешь еще подсказать как это сделать без нажатия на кнопу. У меня скрипт срабатывает без нажатие на кнопку. С php не давно начал работать, пока что не все понимаю (

Я не знаю логики работы твоего скрипта.
Какое действие у тебя вызывает скрипт? На это действие и нужно «повесить» вызов прелоадера.
По действию вызываем прелоадер, вызываем скрипт.
И этот вызов прелоадера должен происходить средствами клиентского приложения-браузера. А это javascript, ajax и т.д.

Основная проблема в том, что твой скрипт при запуске ничего не выведет до своего завершения.
Пример

echo'Текст в начале скрипта
'
;//Вот здесь бы написать - Пожалуйста подождите. скрипт работает. sleep (5); //Ждем 5 секунд. Какие то действия выполняем 5 секунд. echo'Текст в конце скрипта';

Оба сообщения будут выведены через 5 секунд. Вместе.
А хочется, чтобы первое сразу, а второе через 5 секунд. Но не выйдет.

Поэтому только до запуска скрипта.
Пример. Так делать не красиво, но для общего понимания сойдет.

У меня есть скрипт с действиями. Эти действия выполняются 2 минуты.
У меня есть страница. Я хочу вывести прелоадер, а потом запустить скрипт.
Код страницы будет такой

 html> head> title>Справочная документация/title> meta http-equiv=Content-Type content="text/html;charset=UTF-8"> meta http-equiv="Refresh" content="1;url=http://www.domen.ru/actions.php"> /head> body> Пожалуйста подождите. Скрипт работает. /body> /html>

Что произойдет. Загрузится страница. (это главное!) Значит пользователь увидит текст (блок, див, картинки) Пожалуйста подождите. Скрипт работает.
Через 1 секуду content=»1 будет осуществлен автопереход (фу, как не красиво(с)) на страницу domen.ru/actions.php. Это скрипт.
Сервер начнет выполнять скрипт. И пока не выполнит, ничего не вернет пользователю. Значит пока скрипт не выполнится, пользователь будет наблюдать текст Пожалуйста подождите. Скрипт работает.
А когда скрипт завершит работу, то что то произойдет — может переход на другую страницу, с другим текстом. Это как решит скрипт, какие там команды.

Источник

Как вызвать php скрипт без перезагрузки страницы?

qant

нада не событие submit (не click) отлавливать и preventDefault() добавить.

qant

Так же для дебага можно временно заменить POST на GET

и Проверить получает ли что то сам файл code.php доходят ли до него значения, и работает ли функция отправки mail()

qant

Dmitriy__S, скопируй мой код полностью, тк у тебя он с ошибками и проделай для проверки все то что я тебе написал выше

для дебага javascript можно натыкать везде console.log(‘ok’); и смотреть в консоль браузера что бы понимать доходит ли до туда обработка

debian_Lenovo-B50-30

не будет такой код работать, если на теге button будет name и value для отправки, тег button не попадает в сериализацию

так же такой код не будет работать, если в форме несколько тегов button с атрибутами — formaction

var form = $(this); $.ajax(< type: "POST", url: '/php/code.php', //возможно тут нужен полный путь к файлу типа http://myweb.ru. data: form.serialize(), // serializes the form's elements. success: function(data) < alert(data); // show response from the php script. >>);

Источник

Оцените статью