Пример массива:
[0] => Array
(
[id] => zxcv
[next_page_id] => abcd
[suggestions] => Array
(
[0] => Array
(
[data] => data
)
[1] => Array
(
[data] => data2
)
)
)
Предположим что на первой странице выводится 100 записей, а следующие можно получить передав аргумент next_page_id, мне нужно показать пользователю количество записей из первой страницы, но при этом записать в БД все данные со всех страниц, получается нужно делать много запросов, и это занимает очень много времени... Есть ли возможность сделать вывод в браузер, при этом параллельно записывать в БД?
Я пока-что вижу только один вариант, это писать id текущего запроса в тег, или переменную js, затем делать ajax запрос... Возможно есть решение получше? Заранее спасибо. Основная задача, при первом запросе берем из API, выводим пользователю и пишем в БД, при последующих запросах если запись есть в БД, выводим если нет обращаемся к API.
Схема следующая:
Функция(взята из открытых источников) которая "запускает" отдельный поток. Здесь $url это url вашего скрипта работающего в фоне. Функция не ждет завершения скрипта
function exec_script($url, $params = array())
{
$parts = parse_url($url);
if( isset($params['PHPSESSID']) ) unset($params['PHPSESSID']);
$fp = fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80);
if ($fp == FALSE )
{
return false;
}
$data = http_build_query($params, '', '&');
fwrite($fp, "POST " . (!empty($parts['path']) ? $parts['path'] : '/') . " HTTP/1.1\r\n");
fwrite($fp, "Host: " . $parts['host'] . "\r\n");
fwrite($fp, "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0\r\n".
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n".
"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n".
"Accept-Encoding: gzip, deflate\r\n");
fwrite($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fwrite($fp, "Content-Length: " . strlen($data) . "\r\n");
fwrite($fp, "Connection: Close\r\n\r\n");
fwrite($fp, $data);
fclose($fp);
return true;
}
Нужно будет решить что делать если пользователь сразу запросил 9 страницу к примеру...
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости