Лучший способ обработки межсерверных php включает - PullRequest
3 голосов
/ 22 июня 2011

Это вопрос из двух частей ...

1) Создает ли file_get_contents нагрузку на сервер?Я использую его три раза подряд на боковой панели блогов, чтобы вытащить рекламу через свою блог-сеть, но теперь сеть замедляется.Я хочу убедиться, что это не причина.

2) Что такое лучший способ обработки межсерверных включений?Как я уже говорил выше, я использую file_get_contents и, вероятно, делаю это ОЧЕНЬ плохим способом.Взглянув на некоторый мой код, я увижу:

<?
$c = file_get_contents("http://www.url.com/includes/include1.php");
echo ($c);
?>  
<?
$c = file_get_contents("http://www.url.com/includes/include2.php");
echo ($c);
?>  

Я понимаю, что сейчас это неаккуратно, потому что он открывает и закрывает php, когда вам не нужно, плюс он помещает два разных URL под одним и тем жепеременная.Это заставляет меня задуматься, как это вообще работает на данный момент.

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 22 июня 2011

Вы не должны разрешать межсерверные включения. Что может помешать кому-либо, кроме вас, читать содержимое ваших файлов PHP?

Что касается вашего первоначального вопроса: если вас беспокоит отзывчивость, загрузите вашу рекламу через Ajax (я рекомендую jQuery). Таким образом, реальный контент будет быстро загружаться, а вскоре после этого появится реклама.

Еще один вариант - кэшировать ваши объявления.

1 голос
/ 22 июня 2011

Гораздо лучший способ - получить отдельный скрипт, который извлекает эту информацию, а затем кэширует ее в файле на вашем сервере.Затем подайте этот кэшированный файл.Задание cron может время от времени обновлять кеш, а эффективность вашего сайта полностью не зависит от доступности рекламного сервера.В настоящее время, если рекламный сервер не работает, ваш сценарий будет зависать, пока не истечет время ожидания запроса, а ваш пользователь останется стоять на пустом экране вечно.

...