Пример массива:
[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 страницу к примеру...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
На заднем фоне View элемент напоминающий треугольникСиним показан элемент который нужно развернуть вдоль гипотенузы
Это приложение - простой калькулятор, мне нужно при делении задать TextView результат, и так чтобы это было без округления, в моём случае округление...