Можно ли создать несколько потоков в php?
1)создай на веб-странице несколько скрытых ифреймов и работай с ними
2)работай по хттпс с браузером, там таймауты вроде поднатянутые
3)регулярно посылай заголовок, что-то типа "Ping: pong", тогда браузер будет думать, что какие-то данные передаются
4)вызывай их пхп некую внешнюю прогу
И если их закачивать как обычно (последовательно то браузер закрывает сессию до того как все страницы успевают скачаться и обработаться.
Ты скачиваешь страницы браузером?
![](/images/graemlins/shocked.gif)
- открываю браузером, например, index.php
- в котором имеется что-нибудь вроде
<?php
for ($i=0; $i<300; $i++)
$siteContent[$i]=file_get_contents($siteName[$i]);
?>
- поскольку это достаточно долгая процедура (пока не скачается одна страница, следующая скачиватсья не начнет а браузер рвет соединение через некоторое время, то она не успевает выполнитсья до конца и прерывается.
Собственно вопрос был в том, возможно ли решить как-нибудь это проблему. И, в частности, нельзя ли скачивание страниц запустить в несколько потоков, что бы ускорить выполнение этого скрипта.
thx, видимо, что-нибудь в этом духе и придеться делать
Все неправильно, и на пхп такие вещи делать нельзя.
Не понял что неправильно?
Не понял что неправильно?
Неправильно хотеть при загрузке одной веб-страницы дергать 300 других. Это ненормально.
Лучше всего напиши скрипт, который бы делал 300 wget'ов в определенный каталог, а на странице пиши "подождите" и изредка перегружай ее. После отработки всех wget'ов, просто подменивай текст на странице ожидания, и показывай то, что что хочешь.
Так будет честно и справедливо.
![](/images/graemlins/wink.gif)
![](/images/graemlins/wink.gif)
![](/images/graemlins/wink.gif)
![](/images/graemlins/wink.gif)
Неправильно хотеть при загрузке одной веб-страницы дергать 300 других. Это ненормально.
так делает форум.локал на главной страничке.
поизучай.
так делает форум.локал на главной страничке
форум.локал не образец для подражания. Это раз.
Во-вторых, если надо много что дернуть с локалхоста, то лучше это каким-то другим способом делать. Например, держать постоянные tcp-соединения.
Главная страница мэйла тоже много дергает.
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
сделал с помощью wget и хитрыми java-script
наверное, то что получилось можно назвать "Ajax application" :-)
наверное, то что получилось можно назвать "Ajax application"а почему просто Ajax не использовать?
так делает форум.локал на главной страничке.Можно поподробнее с этого места?
а почему просто Ajax не использовать?Ну, насколька я понимаю Ajax - это просто общее описание к построению и изменению web-cтраниц, а конкретная реализация может быть весьма произвольной.
Собственно, одним из таких наборов скриптов я и пользовался
Subsys_JsHttpRequest: подкачка данных без перезагрузки страницы (AJAX)
![](/images/graemlins/smile.gif)
каждый слот кэшируется. когда залогинений пользователь заходит ему дергаются нужные ему слоты и просто выводится шапка + сами слоты.
получется наверное даже сильно быстрее, но все равно ведь говнорешение, правда ведь?
а как ты лучше быстродействие улучшишь? У нас, по идее, тоже так, хоть и не под каждого пользователя... Куча хтмл-файлов, они себе спокойно в сквиде живут, а как только что-нибудь обновляется, обновляется и сама хтмл-а
Создаешь массив с неблокирующими сокетами и дергаешь по страничке на сокет:
Оставить комментарий
6252525
Хочется закачивать много внешних страниц для их последующей обработки. И если их закачивать как обычно (последовательно то браузер закрывает сессию до того как все страницы успевают скачаться и обработаться.