Сегодня 2 января, пятница ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Заметки - Блог о web-разработке. Сервисы для блоггеров. Блоговое
Голосов: 1
Адрес блога: http://www.blogovoe.ru/blog/
Добавлен: 2013-12-27 23:28:54 блограйдером panevin
 

Рестарт php-скрипта

2016-09-27 11:54:12 (читать в оригинале)

Задача:
Стандартная «засада» — лимит на выполнение php-скрипта на сервере 30 секунд. Хорошо, если у вас есть возможность это значение увеличить (в панели хостера или в конфиге php.ini, или в самом скрипте прописать:
set_time_limit(0);
ini_set('max_execution_time', '3600');
). А если нет? Приехали. Приходится выдумывать костыли и велосипеды.

Решение:
перезапускать php-скрипт яваскриптом. Например так:
function getdata(id) {
	var lnk = '/scripts/import_test.php';
	$.post(lnk, { id: id }, function(data) {
	$("#main").append(data.res + '
'); var idcur = parseInt(data.id); if (idcur < 10) { getdata(data.id);//restart current function (recursion) } else { $("#main").append('fin---
');//finish! } }, "json"); } $(document).ready( $(function() { var lnk = '/scripts/import_test.php';//first iteration var id_current = 1; getdata(id_current); }));

PHPшная часть:
$id = $_REQUEST['id'];

/*
something operations
*/

$id++;
$out = $id.' - ok';//debug variable
$array = array("id" => $id, "res" => $out);
echo json_encode($array);
exit;


Т.е. всё по-педальному просто: яваскрипт 9 раз (от 1 до 10) вызывает php-скрипт, а php при каждом обращении увеличивает счётчик.

Есть и другие решения, например редиректить на тот же самый скрипт, меняя счётчик в урле: import_test.php?id=2 (след. итерация id=3 и т.д.), но современные браузеры такую хитрожопость стали пресекать и редирект блокируется итерации на десятой, поэтому и было придумано вышеописанное решение.

Рабочий пример



 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Авто/Мото»
Взлеты Топ 5
+265
299
MicheL1102
+238
257
Темы_дня
+230
258
Bisdiv.com
+220
259
Дневник
+177
284
Пофигист
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.